澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

MySQL常用命令澳门皇冠844网站,MySQL常用命令整理

(1)库的基础操作

1.user表
        如果需要从其他机器连接 mysql 服务器
报这个错“ERROR 1130: Host 'root' is not allowed to connect to this MySQL server”
我们需要为连接用户设置权限

MySQL常用命令:

启动MySQL:net start mysql
停止MySQL:net stop mysql
登录MySQL:mysql -h hostname -u username -p 或者mysql -u username -ppassword
退出MySQL:exit 或者 quit

数据库:database 表:table

  • 查看已有库: show databases;
  • 创建库(制定默认字符集): ccreate database 库名 default charset=utf8;
  • 查看创建库的语句: show create database 库名;
  • 查看当前所在库: select database();
  • 切换库: use 库名;
  • 查看库中已有表: show tables;
  • 删除库: drop database 库名;

在mysql库 user表中

数据库的基本操作:

(2)表的管理

澳门皇冠844网站 1

创建和查看数据库:

创建数据库:create database 数据库名称;
查看所有数据库:show databases;
查看某个已经创建的数据库信息:show create database 数据库名称;
修改数据库编码:alter database 数据库名称 default character set 编码方式;
删除数据库:drop database 数据库名称;

  • 创建表(制定字符集)

 【1】Host——对应的允许访问域(%表示全域,192.168.%.%表示对应账号对该段均可访问,
           127.0.0.1表示对应账号仅这台机器可访问)
【2】User——用户名
【3】Password——密码加密串
【29】xxx_priv——各种权限 

数据表的基本操作:

注意事项:操作数据表之前,需要使用”use 数据库名”指定操作哪个数据库。

创建数据表:
<code>
Create table 表名
(
字段名1,数据类型 [完整性约束条件],
字段名2,数据类型 [完整性约束条件],
...
字段名n,数据类型 [完整性约束条件],
);
</code>
查看数据表:
Show create table 表名;
<code>使用describe语句查看数据表:describe 表名;或者 desc 表名;</code>
修改数据表:
<code>修改表名:alter table 旧表名 rename [to] 新表名;
修改字段名:alter table 表名 change 旧字段名 新字段名 新数据类型;
即使新字段与旧字段数据类型相同,也不能省略,必须重写。
修改字段数据类型:alter table 表名 modify 字段名 数据类型;
添加字段:alter table 表名 add 新字段名 数据类型 [约束条件] [first|after 已存在字段名];
删除字段:alter table 表名 drop 字段名;
修改字段的排列位置:
alter table 表名 modify 字段名1 数据类型 first|after 字段名2;
删除数据表:drop table 表名;
</code>

    create table tablename(

2.mysql默认库
一个刚建好的mysql数据库 一般有一下几个库
# show database;
'information_schema'
'mysql'
'performance_schema'
'test'

表的约束:

主键约束:primary key;
外键约束:foreign key;
非空约束:not null;
唯一性约束:unique;
默认值约束,用于设置字段的默认值:default;

  1. 主键约束:
    单字段主键:字段名 数据类型 primary key
    多字段主键:primary key(字段名1,字段名2,...,字段名n)
  2. 非空约束:字段名 数据类型 not null
  3. 唯一约束:字段名 数据类型 unique
  4. 默认约束:字段名 数据类型 default 默认值

    字段名 数据类型,

information_schema 库:
information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在information_schema表里面。

设置表的字段值自动增加:

字段名 数据类型 auto_increment
默认情况下,该字段的值是从1开始自增的。
索引:
创建索引:
创建表的时候创建索引:
<code>
create table 表名(
字段名 数据类型 [完整性约束条件],
字段名 数据类型 [完整性约束条件],
...
字段名 数据类型 [完整性约束条件],
[unique|fulltext|spatial] index|key [别名] (字段名 [(长度)]) [asc|desc]
);
</code>

查看索引是否被使用:explain select * from 表名 where 字段名=值 g

  1. 使用create index 语句在已经存在的表上创建索引
    <code>create [unique|fulltext|spatial] index 索引名 on 表名(字段名 [(长度)]) [asc|desc]
    </code>
  2. 使用alter table 语句在已经存在的表上创建索引:
    <code>
    Alter table 表名 add [unique|fulltext|spatial] index 索引名(字段名 [(长度)]) [asc|desc]
    </code>
    删除索引:
  3. 使用alter table 删除索引:
    Alter table 表名 drop index 索引名;
  4. 使用drop index 删除索引:
    Drop index 索引名 on 表名;

添加,更新与删除数据:
添加数据:

  1. 为表中所有字段添加数据:
    A.insert语句中指定所有字段名
    Insert into 表名 (字段名1,字段名2,...)
    Values (值1,值2,...);
    B.insert语句中不指定字段名
    Insert into 表名 values(值1,值2,...)
    注意事项:添加的值得顺序必须和字段在表中的定义的顺序相同
  2. 为表的指定字段添加数据:
    Insert into 表名 (字段名1,字段名2,...)
    Values(值1,值2,...);
    多学一招:insert语句的其它写法:
    Insert into 表名
    Set 字段名1=值1[,字段名2=值2,...];
  3. 同时添加多条记录:
    <code>
    Insert into 表名 [(字段名1,字段名2,...)]
    Values (值1,值2,...),
    (值1,值2,...),
    ...
    (值1,值2,...);
    </code>

    字段名 数据类型,

mysql 库:
mysql数据库是mysql的参数数据库,这个是mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除

更新数据:
  1. 更新部分数据
  2. 更新全部数据(不使用where语句)
    <code>
    Update 表名
    Set 字段名1=值1[,字段名2=值2]
    [where 条件表达式];
    </code>

    ... ...

performance_schema 库:
5.5 版本起 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA。主要用于收集数据库服务器性能参数。MySQL用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表,这个功能默认是关闭的:
需要设置参数: performance_schema  才可以启动该功能,这个参数是静态参数,只能写在my.cnf 中
不能动态修改。
Performance的开启很简单,在my.cnf中[mysqld]加入performanc_schema,检查性能数据库是否启动的命令:
SHOW VARIABLES LIKE ‘performance_schema’;
若是返回的 值为ON,则说明性能数据库正常开启状态。

删除数据:
  1. 删除部分数据
  2. 删除全部数据(不使用where语句)
    Delete from 表名 [where 条件表达式];
    多学一招:
    使用关键字truncate(截断)删除表中数据:
    Truncate [table] 表名;
    总结:delete删除部分数据,truncate删除全部数据。

    );

 

单表查询:

Select语句:
<code>
Select [distinct] *|{字段名1,字段名2,字段名3,...}
From 表名
[where 条件表达式1]
[group by 字段名 [having 条件表达式2]]
[order by 字段名 [asc|desc]]
[limit [offset] 记录数];
</code>

  • 查看创建表的语句(字符集)

test 库:
做测试使用的。

简单查询:

查询所有字段:

  1. 在select语句中指定所有字段:
    Select 字段名1,字段名2,... From 表名;
  2. 在select语句中使用“*”通配符代替所有字段
    Select * from 表名;

查询指定字段:
<code>Select 字段名1,字段名2,...from 表名;</code>

    show create table tablename;

 

按条件查询:
  1. 带关系运算符的查询
    <code>
    Select *|字段名1,字段名2,...
    From 表名
    Where 条件表达式;
    </code>
  2. 带in关键字的查询:判断某个字段的值是否在指定的集合中
    <code>
    Select *|字段名1,字段名2,...
    From 表名
    Where 字段名 [not] in (元素1,元素2,...);
    </code>
  3. 带between and 关键字的查询:判断某个字段的值是否在指定的范围内
    <code>
    Select *|字段名1,字段名2,...
    From 表名
    Where 字段名 [not] between 值1 and 值2;
    </code>
  4. 空值查询
    <code>
    Select *|字段名1,字段名2,...
    From 表名
    Where 字段名 is [not] null;
    </code>
  5. 带distinct关键字的查询
    <code>
    Select distinct *|字段名1,字段名2,...]
    From 表名;
    </code>
  6. 带like关键字的查询
    a) 百分号(%)通配符:匹配任意长度的字符串
    b) 下划线()通配符:匹配单个字符
    <code>
    Select
    |字段名1,字段名2,...
    From 表名
    Where 字段名 [not] like ‘匹配字符串’;
    </code>
    如果需要匹配%或者*,则使用转义字符’’,如:% 或者 _
  7. 带and关键字的多条件查询
    <code>
    Select *|字段名1,字段名2,...
    From 表名
    Where 条件表达式1 and 条件表达式2 [...and 条件表达式3];
    </code>
  8. 带or关键字的多条件查询
    <code>
    Select *|字段名1,字段名2,...
    From 表名
    Where 条件表达式1 or 条件表达式2 [...or 条件表达式3];
    </code>
  9. or和and关键字一起使用的情况:
    And的优先级高于or,因此当两者一起使用时,应该先运算and两边的条件表达式,再运算or两边的条件表达式。
  • 查看表结构

3..显示查看命令
查看mysql的当前登陆用户 
select user();

    desc tablename;

查看当前版本
select  @@version ;

  • 删除表

1、显示当前数据库服务器中的数据库列表:

    drop table tablename;

mysql> SHOW DATABASES;

(3)表记录管理

注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

  • 在表中插入记录

2、显示数据库中的数据表:

    insert into tablename values(值1),(值2),...,(值N);

mysql> USE 库名;
mysql> SHOW TABLES;

  • 查询表记录

3、显示数据表的结构:

    select * from tablename;

mysql> DESCRIBE 表名;

    select 字段名1,字段名2,...,字段名N from tablename;

4、显示当前时间
mysql>select now();

(4)表字段的操作

5、显示年月日
SELECT DAYOFMONTH(CURRENT_DATE);
--------------------------
| dayofmonth(current_date) |
--------------------------
|                       24 |
--------------------------
1 row in set (0.02 sec)

    语法:

 SELECT MONTH(CURRENT_DATE);
---------------------
| MONTH(CURRENT_DATE) |
---------------------
| 9 |
---------------------
1 row in set (0.00 sec)

      alter table tablename 执行动作;

SELECT YEAR(CURRENT_DATE); --------------------
| YEAR(CURRENT_DATE) |
--------------------
| 2009 |
--------------------
1 row in set (0.00 sec)

  • 添加字段
    •   alter table tablename add 字段名 数据类型 first | after 字段名;
  • 删除字段
    •   alter table tablename drop 字段名;
  • 修改字段数据类型
    •   alter table tablename modify 字段名 新数据类型;

 

      注: 修改数据类型时,会受到表中原有数据的限制!

  1. 当计算器用
    select ((4 * 4) / 10 ) 25;
    ----------------------
    | ((4 * 4) / 10 ) 25 |
    ----------------------
    | 26.60 |
    ----------------------
    1 row in set (0.00 sec)
  • 修改字段名
    •   alter table tablename change 旧名 新名 数据类型;
  • 修改表明
    •   alter table tablename rename 新表明;

 

(5)表记录的管理

 显示字符串
mysql> SELECT "welecome to my blog!";
----------------------
| welecome to my blog! |
----------------------
| welecome to my blog! |
----------------------
1 row in set (0.00 sec)

  1. 删除表记录
    1.   delete from tablename where 条件;
  2. 更新表记录
    1.   update tablename set 字段名1=值1, 字段名2=值2,... where 条件;

串接字符串
select CONCAT(f_name, " ", l_name) AS Name
from employee_data
where title = 'Marketing Executive';
---------------
| Name |
---------------
| Monica Sehgal |
| Hal Simlai |
| Joseph Irvine |
---------------
3 rows in set (0.00 sec)
注意:这里用到CONCAT()函数,用来把字符串串接起来。另外,我们还用到以前学到的AS给结果列'CONCAT(f_name, " ", l_name)'起了个假名。

(6)一些特殊的匹配方式

 

  1. 模糊匹配
    1.   where 字段名 like 表达式;
    2.   表达式
      1.   _   :  匹配单个字符
      2.   %  : 匹配 0 到多个字符
  2. 正则匹配 regexp
    1.   where 字段名 regexp "正则表达式";
    2.   正则表达式符号
      1.   ^ : 以...开头
      2.   $: 以...结尾
      3.   . : 匹配任意一个字符
      4.   []: 包含...内容
        1.         [0-9]:匹配带数字的
        2.         [a-z]:匹配带小写字母的
        3.         [A-Z]
      5.   * : 星号前面的字符出现 0 次或者多次

 

 

 

可以把 SQL 分为两个部分:
※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
※ 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
※ 数据查询语言(DQL),例如:SELECT语句。(一般不会单独归于一类,因为只有一个语句)。
※ 数据控制语言(DCL),例如:GRANT、REVOKE等语句。
※ 事务控制语句(TCL),例如:COMMIT、ROLLBACK等语句

查询和更新指令构成了 SQL 的 DML 部分:
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
DROP DATABASE - 删除数据库

CREATE TABLE 
- 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表

CREATE INDEX 
- 创建索引(搜索键)
DROP INDEX - 删除索引
ALTER INDEX -修改索引

 

4.库操作

4.1 创建数据库
注意:创建数据库之前要先连接Mysql服务器
命令:
create database <数据库名>
例1:建立一个名为xhkdb的数据库
   mysql> create database xhkdb;

例2:创建数据库并分配用户
①CREATE DATABASE 数据库名;
②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '
密码';
③SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');

依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。

4.2 显示数据库
命令:show databases   (注意:最后有个s)
mysql> show databases;
注意:为了不再显示的时候乱码,要修改数据库默认编码。以下以GBK编码页面为例进行说明:
1、修改MYSQL的配置文件:my.ini里面修改default-character-set=gbk
2、代码运行时修改:
   ①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
   ②PHP代码:header("Content-Type:text/html;charset=gb2312");
   ③C语言代码:int mysql_set_character_set( MYSQL * mysql, char * csname);
该函数用于为当前连接设置默认的字符集。字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与SET NAMES语句类似,但它还能设置mysql- > charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

4.3 删除数据库
命令:drop database <数据库名> 例如:删除名为 xhkdb的数据库
mysql> drop database xhkdb;
例子1:删除一个已经确定存在的数据库
   mysql> drop database drop_database;
   Query OK, 0 rows affected (0.00 sec)
例子2:删除一个不确定存在的数据库
   mysql> drop database drop_database;
   ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist
      //发生错误,不能删除'drop_database'数据库,该数据库不存在。
   mysql> drop database if exists drop_database;
   Query OK, 0 rows affected, 1 warning (0.00 sec)//产生一个警告说明此数据库不存在
   mysql> create database drop_database;
   Query OK, 1 row affected (0.00 sec)
   mysql> drop database if exists drop_database;//if exists 判断数据库是否存在,不存在也不产生错误
   Query OK, 0 rows affected (0.00 sec)

4.4 连接数据库
命令: use  <数据库名> 例如:如果xhkdb数据库存在,尝试存取它:
   mysql> use xhkdb;
屏幕提示:Database changed
use 语句可以通告MySQL把db_name数据库作为默认(当前)数据库使用,用于后续语句。该数据库保持为默认数据库,直到语段的结尾,或者直到发布一个不同的USE语句:
   mysql> USE db1;
   mysql> SELECT COUNT(*) FROM mytable;   # selects from db1.mytable
   mysql> USE db2;
   mysql> SELECT COUNT(*) FROM mytable;   # selects from db2.mytable
使用USE语句为一个特定的当前的数据库做标记,不会阻碍您访问其它数据库中的表。下面的例子可以从db1数据库访问作者表,并从db2数据库访问编辑表:
   mysql> USE db1;
   mysql> SELECT author_name,editor_name FROM author,db2.editor
       ->        WHERE author.editor_id = db2.editor.editor_id;
USE语句被设立出来,用于与Sybase相兼容。
有些网友问到,连接以后怎么退出。其实,不用退出来,use 数据库后,使用show databases就能查询所有数据库,如果想跳到其他数据库,用
   use 其他数据库名字
就可以了。

4.5 当前选择的数据库
命令:mysql> select database();
MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能?
1.显示MYSQL的版本
mysql> select version(); 
-----------------------  
| version()             | 
-----------------------  
| 6.0.4-alpha-community | 
-----------------------  
1 row in set (0.02 sec) 

4.5 修改数据库

alter database  数据库名 用于更改数据库的全局特性。这些特性储存在数据库目录中的db.opt文件中

create database <数据库名>  增
drop database <数据库名>     删
alter <数据库名>                      改
show databases                      查

select database();
use 数据库名

 

本文由澳门皇冠金沙网站发布于数据库研究,转载请注明出处:MySQL常用命令澳门皇冠844网站,MySQL常用命令整理