本文主要总结MySQL学习中的重点知识,不做基本概念的普及。
SQL基本知识
基本命令
启动MySQL数据库 net start mysql
关闭MySQL数据库 net stop mysql
客户端登录MySQL
登录 mysql -u root -p 123 -h localhost
其中 -u 后面是用户名; -p后面是密码; -h后面是主机名;
退出 quit或exit
SQL语句
DDL语句
查看数据库名称 ;
切换数据库 ;
创建数据库 ;
删除数据库 ;
修改数据库编码 ;
数据类型
double 浮点型
decimal 浮点型
int 整形
char 固定长度的字符串类型
varchar 可变长度的字符串类型
blob 字节类型
date 日期类型,格式为yyyy-MM-dd
timestamp 时间戳类型
操作表结构
创建表 CREATE TABLE 表名{ 列名 列类型, 列名 列类型};
修改表结构
修改stu表添加classname列.
ALTER TABLE stu (classname varchar(100));
修改stu表的gender列类型为char(2).
ALTER TABLE stu gender sex CHAR(2);
修改stu表的列名称gender为sex.
ALTER TABLE stu gender sex CHAR(2);
删除stu表的classname列 .
ALTER TABLE stu classname;
DML语句
插入数据
语法: INSERT INTO 表名(列名1,列名2, ...) VALUES(值1,值2,...);
修改数据
语法: UPDATE 表名 SET 列名1=值1,....,列名n=值n [WHERE 条件];
删除数据
语法: DELETE FROM 表名 [WHERE 条件];
语法: TRUNCATE TABLE 表名
注意: DELETE和TRUNCATE区别:DELETE效率没有TRUNCATE高,因为TRUNCATE先删除table,再CREATE table; TRUNCATE删除记录无法回滚,但是DELETE删除记录可以回滚;
DCL语句
创建用户
CREATE USER 用户名@地址 IDENTIFIED BY '密码';
给用户授权:
GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT on mydb1.* TO user1@localhost;
撤销授权
REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;
查看用户权限
SHOW GRANTS FOR user1@localhost;
删除用户
DROP USER user1@localhost;
修改用户密码:
UPDATE USER SET PASSWORD=PASSWORD('1234') WHERE user='user2'; FLUSH PRIVIEGES;
DQL语句
查询所有列:
SELECT* FROM stu;
查询指定列:
SELECT sid,name,age FROM stu;
条件查询(where子句):
SELECT * FROM stu WHERE sid='s_101' OR sname='lisi';
模糊查询:
SELECT * FROM stu WHERE sname LIKE '_'; //其中——匹配任意字母;
SELECT* FROM stu WHERE sname LIKE'z%';//其中%匹配0-n个字母;
字段控制查询:去除重复记录.
SELECT DISTINCT sal FROM emp;
给列添加别名:
SELECT *,sal+IFNULL(comm,0) AS total FROM emp;//将sal和comm列求和,如果comm为空,就转换为0;别名叫total;
排序:
SELECT *FROM stu ORDER BY age ASC;
注意:升序排列ASC,降序排列 DESC;
聚合函数:
SELECT COUNT(*) AS cnt FROM emp;//查询表中记录数量;
SELECT COUNT(comm) cnt FROM emp;//统计comm列非空的行数;
分组查询:
SELECT depno,COUNT(*) FROM emp GROUP BY depno;//按部门分组查询每个部门人数;
LIMIT子句:
SELECT *FROM emp LIMIT 3,10;// 查询10条记录,从第三行开始;
其他,比如完整性约束。
领取专属 10元无门槛券
私享最新 技术干货