玖叶教程网

前端编程开发入门

数据库知识点

1.数据库的语句可以分为以下四类:

(1)DDL:Data Define Language 定义数据

(2)DML:Data Manipulate Language 操作数据

(3)DQL:Data Query Language 查询数据

(4)DCL:Data Control Language 控制用户权限

2.查询数据库列表

show databases;

3.创建数据库

create database 数据库名称;

4.指定数据库(接下来所有的操作都是在该库下执行)

use 数据库名称;

5.建表语句

create table 表名(

字段1名称 数据类型,

字段2名称 数据类型

);

6.查询库下面的所有表

(1)show tables;(执行的前提是有指定数据库)

(2)show tables from 数据库名

7.查询表的所有字段属性

(1)show columns from 表名;

(2)desc 表名 ;

(3)SELECT

column_name AS '列名',

data_type AS '数据类型',

column_default AS '默认值',

column_comment AS '备注'

FROM

information_schema.columns

WHERE

table_name='表名' and table_schema = '库名';

8.修改表结构,添加字段

alter table 表名 add 字段名 数据类型;

9.修改表结构,添加字段B到字段A之后

alter table 表名 add 字段B名 数据类型 after 字段A名;

10.修改表结构,仅修改字段名或者仅修改字段属性或者两者都修改

alter table 表名 change 待修改字段名 修改后的字段名 修改后的字段属性;

11.建表设置非空约束语句(如果不插入非空字段,会提示报错)

create table 表名(

字段1名称 数据类型 not null,

字段2名称 数据类型

);

12.建表设置默认值(在不设置默认值的情况下,所有字段默认是空(null))

create table 表名(

字段1名称 数据类型 default 默认值,

字段2名称 数据类型

);

13.修改表字段的默认值

ALTER TABLE 表名 ALTER 字段名 SET DEFAULT 默认值

14.删除字段默认值

(1)ALTER TABLE 表名 ALTER 字段名 SET DEFAULT null;(注意字段非空属性时,不能设置null默认值)

(2)ALTER TABLE 表名 ALTER 字段名 DROP DEFAULT;

15.修改表字段约束(可以是多个)

alter table 表名 modify 原字段名 原字段属性 约束1 约束2 ...;

16.非空字段设置为允许为空

alter table 表名 modify 原字段名 原字段属性 null;

17.添加unique属性(当设置多个字段唯一值约束时,是由这些字段作为一个整体来验证唯一性)

CREATE TABLE 表名(

字段名1 数据类型1,

字段名2 数据类型2,

CONSTRAINT 约束名 UNIQUE (字段1,字段2,...)

);

ALTER TABLE 表名

ADD CONSTRAINT 约束名 UNIQUE (字段1,字段2...)

18.删除unique属性(如果创建UNIQUE时没有设置约束,需要通过脚本查询系统默认设置的约束名来操作)

ALTER TABLE 表名 DROP INDEX 约束名

19.设置主键(可以是一个字段作为主键,也可以是多个字段作为联合主键)

create table 表名(

字段1名称 数据类型 not null,

字段2名称 数据类型

primary key(主键字段1名称,主键字段2名称...)

);

ALTER TABLE 表名 ADD PRIMARY KEY (主键字段1名称,主键字段2名称...);

20.设置备注

(1)创建备注

create table 表名(

字段1名称 数据类型 comment 备注信息,

字段2名称 数据类型

);

(2)修改备注

alter table 表名 modify 原字段名 原字段属性 comment 备注信息;

21.添加外键约束(注意外键依赖字段必须是该表主键,外键两字段类型必须完全一致,编码字符集必须一致)

CREATE TABLE 表名(

字段一 字段类型,

字段二 字段类型,

CONSTRAINT 外键约束名称 FOREIGN KEY (外键字段) REFERENCES 外键依赖表(外键依赖字段)

)

ALTER TABLE 表名

ADD CONSTRAINT 外键约束名称 FOREIGN KEY (外键字段) REFERENCES 外键依赖表(外键依赖字段);

ALTER TABLE 表名 DROP foreign key 外键约束名称;

22.添加索引

CREATE INDEX 索引名称 ON 表名(索引字段1,索引字段2...)


1.添加数据

INSERT INTO 表名 (字段1,字段2,字段3,...) VALUES (值1,值2,值3,...);

添加多组数据

INSERT INTO 表名 (字段1,字段2,字段3,...) VALUES (值1,值2,值3,...), (值1,值2,值3,...),(值1,值2,值3,...);

插入查询结果集

INSERT INTO 表1 (字段1,字段2,...) SELECT (字段1,字段2,...) FROM 表2;

2.更新数据

UPDATE 表名 SET 字段1=值1,字段2=值2,... WHERE 条件;

3.删除数据

delete from 表名 where 条件;


一、简单单表查询

1.where条件实际是一个条件表达式

2.表达式常用运算符= 、<>(不等于,!=)、>、<、>=、<=

3.in 指定多个值,后跟数组(数组用圆括号,其中多组值逗号隔开)

where 字段 in (值1,值2)

示例:select * from student where id in (1,2);

in对应的是数组,可以嵌套查询sql子集

示例:select * from student where id in (select id from test);

4.between

BETWEEN 操作符选取介于两个值之间的数据范围内的值。可以表示数字和时间,包括边界值

select * from student where id between 5 and 7;

select * from schedule where date between '2020=09-21 23:00:00' and '2020-09-22 18:00:00';

5.and运算符(并且的逻辑关系,多个同时满足条件用and相连)

示例:select * from student where name ='lifang' or sex ='M';

6.or运算符(或者的逻辑关系,用or相连)

示例:select * from student where id =1 or id =2;

7.not(对立面)

示例:select * from student where id not in (1,2);

select * from schedule where date not between '2020=09-21 23:00:00' and '2020-09-22 18:00:00';

8.like 模糊查询

(1)%替代 0 个或多个字符

like %关键字% 包含关键字的所有结果集

like %关键字 关键字在末位

like 关键字% 关键字在首位

(2)_替代一个字符(中文要占两个字节)

_关键字 表示关键字在第二位

9.null作为条件

is null 为空

is not null不为空

10.别名

通过as的方式指定列头信息

11.order by

排序关键字:asc升序,desc降序

如果order by 字段1 排序关键字1,字段2 排序关键字2

其意味着字段1为主排序字段

12. limit

limit a,b a代表起始数据的序号,b代表从起始数据开始显示多少条数据

例如:limit 0,4 显示前四条数据 limit 2,3显示第3条到第5条数据

limit b是limit 0,b简写

13.distinct

DISTINCT 关键词用于返回唯一不同的值

二、联合查询

left join 左联 以left join 左侧表为主表(主表字段完整显示,副表作为扩展信息补充(可能为null))

right join 右联 以right join 右侧表为主表(主表字段完整显示,副表作为扩展信息补充(可能为null))

inner join 内联 两表取交集

两表联合查询

select A.字段,B.字段 from A left join B on A.关联字段=B.关联字段 where 条件;

select A.字段,B.字段 from A inner join B on A.关联字段=B.关联字段 where 条件;

select A.字段,B.字段 from A right join B on A.关联字段=B.关联字段 where 条件;

多表联合查询

left join b on b.关联字段=a.关联字段 可以通过on中的两个表判断对应主表是谁,不需要连在一起写

样例:

select

route.RouteId ,

a1.airportName as DepartureAirportName,

c1.CityName as DepartureCityName,

country1.CountryName as DepartureCountryName,

a2.AirportName as ArrivalAirportName,

c2.CityName as ArrivalCityName,

country2.CountryName as ArrivalCountryName

from

route

left join airport as a1 on a1.IATACode=route.DepartureAirportIATA

left join airport as a2 on a2.IATACode = route.ArrivalAirportIATA

left join city as c1 on a1.CityCode = c1.CityCode

left join city as c2 on c2.cityCode = a2.CityCode

left join country as country1 on country1.CountryCode = c1.CountryCode

left join country as country2 on country2.CountryCode = c2.CountryCode

left join city as c2 on c2.cityCode = a2.CityCode 它的主表是a2,但是他们没有连在一起写

三、MySQL函数

count

sum

avg

max

min

GROUP_CONCAT

TIMESTAMPDIFF

DATEDIFF

DATEADD

NOW

CURDATE

CURTIME

四、统计分组

group by

having

五、exists

两者等价

select * from student where not EXISTS (select 1 from sc WHERE sc.Sno=student.Sno);

select * from student where student.sno not in (select sc.sno from sc);

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言