MySQL是什么?
SQL语言
数据查询语言:DQL
数据操纵语言:DML
数据定义语言:DDL
数据控制语言:DCL
基本数据库操作
单表查询
----------创建数据库
CREATE DATABASE 库名
----------删除数据库
DROP DATABASE 库名
----------修改编码
alter database 库名 CHARSET=utf8
----------查询所有数据库
SHOW DATABASES
----------使用数据库
USE 库名
----------创建表
create table 表名(
studentNo int PRIMARY key auto_increment,
sname VARCHAR(20),
sex VARCHAR(2),
age int
)
----
--------查看当前的表
SHOW TABLES
-------------查看当前表字段
DESC 表名字
-------------查看目前的表以及当前表字段
SHOW CREATE TABLE student
----------删除当前表所有数据
DELETE FROM 表名
------------添加一条数据
INSERT INTO 表名(字段名,字段名) VALUES(数据,“数据”)
INSERT INTO 表名 VALUES(数据,“数据”)
------------添加多条数据
INSERT INTO 表名 VALUES(数据,“数据”),(数据,“数据”),(数据,“数据”),(数据,“数据”)
------------删除一条数据
DELETE FROM 表名 WHERE 要删除的字段数据
-------------插入一个字段
ALTER TABLE表名 ADD 要添加的字段以及字段类型
-------------删除一个字段
ALTER TABLE 表名 drop 字段名
-------------查看当前表数据
SELECT * FROM 表名
----------2,6 取第三个以及以后的六条记录
SELECT * FROM 表名 LIMIT 2,6
----------从小到大排序(两种方法都可以查出来)
SELECT * FROM 表名 ORDER BY 字段
SELECT * FROM 表名 ORDER BY 字段 ASC
----------从大到小排序
SELECT * FROM stu ORDER BY id DESC
-*----------给字段加上名字
SELECT 字段 as “姓名”, 字段 as “序号” FROM 表名
------------分组查询(语句和函数一起使用 聚合函数包括 count(求个数) min(最小值) max(最大值) sum(求和))
SELECT * FROM stu GROUP BY name
单表查询实际案例
以上表为例
-----------查询姓名是李白的学生信息
select * from student where sname=“李白”
-----------查询1班是上海的学生
select * from student where class=“1班” and hometown=“上海”
----------查询家乡是北京或者上海的学生
select * from student where hometown=“北京” or hometown=“上海”
多表查询
交叉查询
交叉查询,又叫笛卡尔积查询,会将左表和右表的信息,做一个乘积将所有信息查询出来,会产生临时表,比较占用内存,生成的记录数=表1 X表2
SELECT * FROM 表1 , 表2
SELECT * FROM 表1 CROSS JOIN 表2
内连接查询
内连接,inner join on 查询两张表,设定条件,将两张表中对应的数据查询出来不会产生笛卡尔积,不会产生临时表,性能高
SELECT * FROM 表1 别名 INNER JOIN 表2 别名 ON 表1别名. 表1字段名 = 表2别名. 表2字段名
SELECT * FROM 表1 , 表2 WHERE 表1.表1字段名 = 表2.表2字段名
SELECT * FROM 表1.别名 , 表2.别名 WHERE 表1.表1字段名 = 表2.表2字段名
左外连接
左外连接 left join on 设定条件,将两张表对应的数据查询出来,同时将左表自己没有关联的数据也查询出来
注意:join前面是左,后面是右
SELECT * FROM 表1 别名 LEFT JOIN 表2 别名 ON 表1别名. 表1字段名 = 表2别名. 表2字段名
右外连接
右外连接 right join on 设定条件,将两张表对应的数据查询出来,同时将右表自己没有关联的所有数据查询出来
SELECT * FROM 表1 别名 LEFT JOIN 表2 别名 ON 表1别名. 表1字段名 = 表2别名. 表2字段名