首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库SQL学习与总结

本文主要总结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条记录,从第三行开始;

其他,比如完整性约束。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180918A08NHH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券