MySQL 命令入门
命令分类:
- DDL Definition :数据库模式定义语言。关键字:CREATE,DROP,ALTER
- DML Manipulation :数据操纵语言。关键字:INSERT、UPDATE、DELETE
- DQL Query :数据库查询语言, 关键字:SELECT
- DCL Control :数据库控制语言 。关键字:GRANT、REMOVE
使用MySQL:
a.首先把MySQL下的bin目录添加到系统的path中,方便以后使用;
b.在CMD下登录服务器端的MySQL,登录本机服务端IP地址为圆环地址127.0.0.1;( MYSQL服务需打开)
mysql -h 127.0.0.1 -u root -pxxx
或者mysql -u root -p
(不输入IP默认在本机;可在p后直接输入密码,且没有空格)
c.然后查看数据库
show databases;
d.使用数据库:
use xxx;
(数据库名)
1.DDL命令:
创建一个名为example的数据库:
CREATE DATABASE example;
删除一个名为example的数据库:
DROP DATABASE example;
创建一张表:
CREATE TABLE 表名(
字段名1 数据类型 [完整性约束],
字段名2 数据类型 [完整性约束],
字段名3 数据类型 [完整性约束],
);
CREATE TABLE mytable(
id INT PRIMARY KEY,
name VARCHAR(20),
sex BOOLEAN
); //单主键
CREATE TABLE mytable2(
stu_id INT,
cour_id INT,
name VARCHAR(20),
sex BOOLEAN,
PRIMARY KEY(stu_id,cour_id)
);//多主键
设定外键:
CREATE TABLE mytable3(
id INT PRIMARY KEY,
name VARCHAR(20),
stu_id INT,
cour_id INT,
CONSTRAINT f_t3_t2 FOREIGN KEY(stu_id,cour_id)
REFERENCES mytable2(stu_id,cour_id)
);//id为主键,stu_id和cour_id为外键,f_t3_t2为外键名,mytable2为mytable3的父表,
mytalbe3表的外键依赖父表mytable2的主键
其它约束:
CREATE TABLE mytable4(
id INT PRIMARY AUTO_INCREMENT,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL,
English VARCHAR(20) DEFAULT 'GOOD',
Math FLOAT DEFAULT 0
);
常用约束:
* PRIMARY KEY
* FOREIGN KEY
* UNIQUE
* NOT NULL
* AUTO_INCREMENT
* DEFAULT
查看表基本结构:
DESCRIBE mytalbe;
或者
DESC mytable;
查看表创建信息:
SHOW CREATE TABLE mytable;
修改表名:
ALTER TABLE mytable RENAME mytable_1;
修改表字段数据类型:
ALTER TABLE mytable4 MODIFY name VARCHAR(50);
修改表字段名和数据类型:
ALTER TABLE mytable4 CHANGE name stu_name VARCHAR(20);
注:MODIFY和CHANGE都可以改变字段的数据类型,不同的是,CHANGE可以在改变字段数据类型的同时,改变字段
名,且CHANGE后面的数据类型不可省略。
增加表字段:
ALTER TABLE 表名 ADD 字段名1 数据类型[完整性约束][FIRST|AFTER 字段名2];
FIRST,AFTER表示添加的位置,默认在添加到最后。
删除表中字段:
ALTER TABLE 表名 DROP 字段名;
修改表中字段位置:
ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名2;
注:数据类型需和之前相同,不然会修改之前的数据类型。
删除表的外键约束:
ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
删除表:
DROP TABLE 表名;
注:当一张表为其它的父表时(被其它表的外键关联),不能直接删除父表。此时可这样解决:
a.先删除子表,再删除父表(不推荐)
b.先删除子表的外键,再删除父表
2.DML命令:
3.DQL命令:
查询语法:
SELECT 属性列表
FROM 表或视图
[WHERE 条件1]
[GROUP BY 字段1 [HAVING 条件2]]
[ORDER BY 字段2 [ASC|DESC]];
注:属性列表为*,表示显示所有列,查询时可自行编辑属性列表和显示的顺序。默认指定ASC(ASCEND升序)
WHERE条件:
BETWEEN AND:
[NOT] BETWEEN 取值1 AND 取值2
取值可以是:整数,标准日期;查询结果包含两个端点值。
IN:
[NOT] IN (元素1,元素2...)
元素可以是整数,字符串(字符串需用单引号)
LIKE:
[NOT] LIKE '字符串'
'字符串'中可以使用通配符%(任意长度)或者_(一个长度)
查询结果不重复(当表中有的字段没有唯一性约束时,可能存在重复的值,可以使用DISTINCT):
SELECT DISTINCT stu_id FROM mytable;
排序查询:
SELECT * FROM mytable ORDER BY age;
可组合:
SELECT * FROM mytable ORDER BY d_id ASC,age DESC;
4.DCL命令:
5.其它命令:
查看数据库支持的存储引擎:
SHOW ENGINES;
存储引擎就是指表的类型,决定了表在计算机中的存储方式。
修改表的存储引擎:
ALTER TABLE 表名 ENGINE=存储引擎名;