目录
1.SQL建库建表语句
1.建库:
2.建表:
2.SQL增删改查语法
1.插入数据
2.查找数据库
3.删除表数据(delete)
4.新增数据(insert)
5.修改数据(update)
3.SQL表关联查询
1.内连连接查询
2.左连接
3.右连接
4.全连接
5.三表链接
4.SQL子查询
1.SQL建库建表语句 1.建库:
CRATE DATABASE IF NOT EXISTS 库名 DEAFAULT CHARSET utf8(默认字符)
IF NOT EXISTS:当表不存在的时候执行建库建表
2.建表: CREATE TABLE ACCOUNT(
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
birthday DATE,
money INT NOT NULL
);
PRIMARY KEY 概念:主键用于唯一标识表中的每一条数据 主键的特征:不能重复, 不能为空
AUTO_INCREMENT 概念:自增 开始值是 1,每条新记录递增 1
INT :数值类型(整数。FLOAT为小数点型) VARCHAR:为字符串类型
DATE : 日期型默认为(YYYY-MM-DD)
2.SQL增删改查语法 1.插入数据
INSERT INTO 表名(字段名1,字段名2,字段名3) VALUES(‘内容1’,'内容2','内容3')
如果内容是字符串型,需要的双引号
2.查找数据库全表查询:SELECT * FROM 表名 * 号为全表字段显示可以把星号改为需要显示的字段
在表名后面可以加上where 条件 就是条件查询 多个条件可以用AND或OR 链接
3.删除表数据(delete)语句:DELETE FROM 表名[where name=‘张三’]
为加where 就是删除整张表数据 加上where条件就是删除指定表数据
drop table 表名 :删除整张表 drop database 库名 : 删除整个数据库
4.新增数据(insert)基础语句:insert into表名(字段名)values(值);
例如:insert into student(name , age)values(' 张三' ,20);
表示为:给student表增加一条数据,name的值为’张三‘,age的值为20
5.修改数据(update)基础语句: update 表名 set 字段名1 = 新增值1,字段名2 = 新增值2 where 条件
例如:update student set name = ‘李四’ , age = 15 where id = 3
表示为:给student表的id为3的数据修改,如果未加where 条件就是修改全部
3.SQL表关联查询 1.内连连接查询表1:
表2:
1.内连接
方法1 , SELECT * FROM websites(表名称1) w(简写1) INNER JOIN access_log(表名称2) a(简写2) ON w.id=a.site_id;
w.id a.site_id : 为表关联字段
结果为:
2.左连接 #左连接 left join ... on
SELECT * FROM websites2 w LEFT JOIN access_log a ON w.id=a.site_id;
结果为:
3.右连接 #右连接 right join .. on
SELECT * FROM websites2 w RIGHT JOIN access_log a ON w.id=a.site_id;
结果为:
4.全连接 #全连接=左连接 union 右连接
SELECT * FROM websites2 w LEFT JOIN access_log a ON w.id=a.site_id
UNION ALL
SELECT * FROM websites2 w RIGHT JOIN access_log a ON w.id=a.site_id;
结果为:
5.三表链接
#三表关联查询,第一个表关联中间表的结果,然后关联第二个表
SELECT st.*,sc.*,su.* FROM student st
INNER JOIN score sc ON st.no=sc.no
LEFT JOIN sub su ON sc.subno=su.subno
1.列子查询
原表:
SELECT * FROM access_log WHERE COUNT >= (SELECT COUNT FROM access_log WHERE site_id = 2)
结果:查询count大于等于id等于2的数据
先查询id等于2的count数据,再通过where查询
2.表子查询
图1:
图2:
SELECT e.emp_ name, e. salary,e.dept_ id, d. dept_ name
FROM (
SELECTemp_ name , dept_ id, salary FROM empWHERE dept_ id >= 2
AND salary > 5000
LEFT JOIN dept d
)e
LEFT JOIN dept d
ON e.dept_ id = d.'ld ;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)