主要内容
1.SQL语句的语法
在SQL对大小写不敏感:SELECT与select的适用效果一致。
某些数据库系统要求在每条 SQL 语句的末端使用分号。
分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。
2.SQL常用数据类型
- 整形数据类型:int(integer)、bigint
- 字符串类型:char、character、varchar、
- 浮点数据类型:double、float
- 日期数据类型:date、time、timestamp
3.数据库操作
- 链接数据库:mysql -u (数据库用户名) -p (数据库密码)
mysql -uroot -p
- 查看所有数据库表:show databases;
show databases;
- 创建数据库:create database 数据库名称;
create database 数据库名称;
- 删除数据库:drop database 数据库名称;
drop database 数据库名称;
- 进入指定数据库:user 数据库名称;
use 数据库名称;
- 查看当前所在数据库下所有表:show tables;
show tables;
4.数据表操作
表约束:
在数据库表操作中会对表进行约束其中常用的表约束如下:
- 非空约束:NOT NULL,不允许某列的内容为空;
- 设置列的默认值:DEFAULT;
- 唯一约束:UNIQUE,该表中,该列的内容必须唯一;
- 主键约束:PRIMARY KEY,非空且唯一;
- 主键自增长:AUTO_INCREMENT,从1开始,步长为1;
- 外键约束:FOREIGN KEY。
表操作:
- 创建数据表:create table 表名称(列名1 类型 [约束l] ,列明2 类型 [约束],..)
创建一个用户表 t_user 包含字段 id ,uname,phone,age
CREATE TABLE t_user(
id INTEGER not null PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(20) not null,
phone BIGINT UNIQUE,
age int not null
)
- 修改数据表名称:alter table 表名 rename to 新表名;
将 t_user 表重新命名为 s_user
ALTER TABLE t_user RENAME to s_user;
- 添加/修改/删除表中一列:
1)添加列:ALTER TABLE 表名 ADD 添加列名 字段类型 [约束] AFTER '列名1' ;//在列名1后增加字段。
例:在 s_user 表中添加一个 email 字段,类型为varchar,非空,在age字段后。
ALTER TABLE s_user ADD email varchar(20) not null AFTER age;
2)修改列:
修改列--重命名列 / 更改列的数据类型:
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型 [primary key/default/not null/...];(CHANGE 既能重命名列,也可以更改列的数据类型)
更改列名
例:将s_user 表中 email 列名,更名为grade,
ALTER TABLE s_user CHANGE email grade varchar(20);
更改列数据类型
例:将grade列数据类型更改为int型
ALTER TABLE s_user CHANGE grade grade int(11);
3)删除列:ALTER TABLE 表名 DROP 列名;
例:将s_user 表中的grade列删除。
ALTER TABLE s_user DROP grade;
- 删除表:drop table 表名;
例:删除表名为 ts 的数据表
DROP TABLE ts;
表数据增删改查
- 往数据表中插入一条数据:insert into 表名(列1,列2,。。) value(值1,值2,。。);
//例:往t_user 表中插入一条完整数据,包含id,姓名,电话,年龄
INSERT INTO t_user(id,uname,phone,age) VALUES(1,'小明',12345678987,18);
//例:插入部分数据
INSERT INTO t_user(id,uname,age) value(2,'小何',17);
- 修改一条数据:update 表名 set 列1=值1,列2=值2......where [条件]
//例:将id为2的数据,名字改为:阿伟,手机号改为:123456,年龄:20
UPDATE t_user SET uname='阿伟',phone='123546',age=20 WHERE id=2;
- 删除表数据:delete from 表名 where 条件
//例:删除t_user表中id为2的一行
delete FROM t_user WHERE id=2;
- 查询数据表中数据 :
select 显示列1,显示列2.。。。(' * '表示显示全部列)from 表名 where [条件]
//例:查询t_user表中所有数据
select * from t_user;
//例:查询t_user中所有年龄大于17岁的人的姓名
select uname from t_user where age>17;
数据表操作关键字
- FROM字句:从哪张表中去查数据;
- WHERE字句:筛选需要的行数据;
- GROUP BY子句:分组操作;
- HAVING:对分组后的记录进行聚合;
- DISTINCT:去重;
- ORDER BY子句:排序操作;
- LIMIT子句:限制条件;
建立一个名为t_user的数据库表,插入如下数据:
//GROUP BY 例:将t_user表中数据按照年龄分组
select id,uname,age FROM t_user GROUP BY age;
//HAVING 例:将t_user表中数据按照年龄分组后显示大于15岁的信息
select id,uname,age FROM t_user GROUP BY age HAVING age>15;
//DISTINCT 例:将t_user表中重复班级排除,显示班级
select DISTINCT class FROM t_user ;
//ORDER BY 例:将t_user表中数据按照年龄排序,从小到大。
SELECT uname,age,class FROM t_user ORDER BY age;
//ORDER BY 例:将t_user表中数据按照年龄排序,从大到小。
SELECT uname,age,class FROM t_user ORDER BY age DESC;
统计函数常用关键字
常用的统计关键字包括(count、sum、max、min、avg)
- COUNT(*):统计表中有多少条数据;
- SUM(列):汇总列的总和;
- MAX(列):获取某一列的最大值;
- MIN(列):获取某一列的最小值;
- AVG(列):获取某一列的平均值;
// 查询16岁共有多少数据
SELECT COUNT(*) age FROM t_user where age=16;
// 计算所有年龄总和
SELECT SUM(age) FROM t_user;