创建数据库、
create database <数据库名字>;
连接数据库
use <数据库名字>;
创建表、
create table 表名
(
字段名 类型(长度),
);
数据类型
int 4, float 4, double 4,enum ,set 多选,date,time,year,char ,varchar,text
约束分类
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性,唯一性。
约束类型:主键,默认值,唯一,外键,非空
关键字:PRIMARY KEY, DEFAULT ,UNIQUE ,FOREIGNKEY, NOT NULL
1.主键,是用来约束表中的一行,作为这一行的表示符,在一张表中通过主键就能准确定位到一行,主键不能重复不能为空。
create table 表名
(
字段名 类型(长度)PRIMARY KEY,
);
2.默认值约束,当有DEFAULT约束的列,插入数据为空,使用默认值3.唯一约束(UNIQUE),它规定一张表中指定的一列的值必须不能有重复,即这一列每个值都是唯一的。
4.外键约束(FOREIGN KEY)既能确保数据完整性,也能表现表之间的关系。
一个表可以有多个外键,每个外键必须REFERENCES(参考)另一个表的主键,被外键约束的列,
取值必须在它参考的列中有对应值。
5.非空约束
在插入值时必须非空
基本的SELECT语句
SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
WHERE限制条件可以有数学符号 (=,<,>,>=,<=) ,
WHERE后面可以有不止一条限制,而根据条件之间的逻辑关系,可以用OR(或)和AND(且)连接:
IN和NOT IN
关键词IN和NOT IN的作用和它们的名字一样明显,用于筛选“在”或“不在”某个范围内的结果,
SELECT * FROM employee WHERE a IN(12);
通配符
关键字 LIKE 在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是 _ 和 % 。
其中 _ 代表一个未指定字符,% 代表不定个未指定字符。
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
对结果排序
为了使查询结果看起来更顺眼,我们可能需要对结果按某一列来排序,这就要用到 ORDER BY 排序关键词。默认情况下,
ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序。
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
SELECT *FROM employee ORDER BY a ASC;
SQL内置函数和计算
函数:COUNT SUM AVG MAX MIN
作用:计数,求和, 求平均值, 最大值, 最小值
有一个细节你或许注意到了,使用AS关键词可以给值重命名,比如最大值被命名为了max_salary:
子查询
上面讨论的SELECT语句都仅涉及一个表中的数据,然而有时必须处理多个表才能获得所需的信息。
SELECT of_dpt,COUNT(proj_name) AS count_project FROM projectWHERE of_dpt
IN(SELECT in_dpt FROM employee WHERE name='Tom');
连接查询
在处理多个表时,子查询只有在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,这时就必须使用连接(join)操作。
SELECT id,name,people_numFROM employee JOIN departmentON employee.in_dpt = department.dpt_nameORDER BY id;