作为学习mysql数据库的记录,如有错误,可以的话麻烦指明一下,谢谢
DDL和DML的练习
注意first为关键字,尽量不要使用关键字去定义一个字段/表/数据库的名字
use work1#使用数据库 create table test( id int primary key, grade double );#创建表 alter table test add column name varchar(32) after id;#在表内增加一个字段 alter table test change column name test_name varchar(64);#改变表内某个字段的名字 alter table test modify column test_name varchar(64) after grade ;#可以更改表中字段的位置,注意被修改的字段要写上数据类型 drop table first1,test;#删除表 use work1;#使用某一数据库 show tables;#展示数据库中的所有表 create table first1( id int primary key, name varchar(32) ); insert into first1(id,name) values (1,"十六圆"),(2,"青木");#向某表中插入某数据 update first1 set id=3,name="十五月亮十六圆" where id=1;#对表内的数据进行更新,注意set和限制条件必不可少 delete from first1 where name="十五月亮十六圆";#删除满足条件的数据 create table if not exists first1 ( name varchar(64), grade int );#新增加的"if not exists"用来确定表是否已经存在,语句要在表名之前 drop table first1;#删除表 alter table first1 add column id int primary key first;#在新增字段的同时,为字段设置约束条件 alter table first1 change column grade grade1 int;#改变某一字段的名字或者类型 alter table first1 drop column grade1;#删除某字段 alter table first1 add column grade1 int;#增加字段,没有额外写位置默认在表的最后新增 alter table first1 modify column grade1 double;#改变表内某一字段的数据类型 alter table first1 change column grade1 grade1 int;#改变表内某一字段的名字 alter table first1 modify column grade1 int first;#改变某字段在表中的位置 alter table first1 rename testdemo1;#修改表名 ##########################################约束条件
数据库的基础约束条件,有五个,可以使用modify语句设定约束条件,也可以在创建表的时候设定
当需要设定同一约束条件的多个字段时,可以使用联合约束条件。
制作表时常用的
主键约束(primary key),外键约束(foreign key)
主键约束
使用主键约束用来创建表中的主键,主键默认不可为空,不可重复,日常使用不可修改,是一个表正常使用的关键约束,必不可少。
每个表有且只能有一个主键,可以是某个单一字段,也可以是一个联合主键。
外键约束
constraint 外键名 foreign key (字段名) references 表名(字段名)
使用外键约束将当前表中的某个字段与其他某一表中的数据进行关联,一般用于限制当前字段的数据必定来自某一外表的某一字段。
想要使用外键,必须要先建立外表,才能在当前表创建一个外键,可以理解为如果没有一个可以参照的外表,那么当前表中的数据就不能进行约束,也就失去了外键的意义,所以想使用外键,必须先确定外表的存在,以及外表中存在的数据。
给字段使用的
非空约束(not null),默认约束(default),唯一约束(unique)
非空约束
使用非空约束用来防止对数据操作时出现意外,导致某一关键字段没有信息,影响当前表的正常使用以及后续对整体数据库的影响。
默认约束
使用默认约束来定义某一字段的初识值,有利于处理需要大量数据相同的字段,同时也能防止在日常使用时,没有及时处理某一字段的信息导致这一条信息缺少值。
唯一约束
使用唯一约束来限制同一字段内,不可出现同一个数据,方便对数据库的管理。
唯一约束不限制null值,只有唯一约束的时候,可以允许多个值为null。
自动递增
对于数值类型的字段,可以设置自动递增条件 auto_increment,一个表只能有一个字段允许自增
联合约束
使用constraint 联合约束名 约束条件(字段名,字段名); 来设定
create table testdemo1( id int primary key, name varchar(32), ticket varchar(64), constraint demo_ticket unique(id,name,ticket) );删除约束条件
对于已经存在于表中的约束条件,可以使用对表操作的语句进行删除。
alter table testdemo1 drop index demo_ticket; alter table testdemo1 drop key demo_ticket;查询语句
既然对数据库和表的创立都已经完成了,下面先来看看正常使用数据库时常用的select语句
select * from emp;#查询某一表中的全部数据,*表示了所有字段 select * from emp where deptno=10;#通过加入where条件语句,限制查询到的数据对于一些比较小的表,我们可以使用 * 来方便查询全部数据,但是对于数据量比较大的表,我们应该尽量去使用匹配的字段去查询
select ename,sal from emp where deptno=10;#针对某些字段进行查询where条件语句
使用where条件语句对查询到的数据进行限制筛选,注意筛选的条件应该符合字段的数据类型和约束条件
特殊的,在使用子查询的时候,可以使用where 字段 in 子查询的方式进行筛选
select ename,sal from emp where ename in(select ename from emp where deptno between 10 and 20); #进行子查询时,使用到的between and 表示当前数据在某一范围之间 #使用子查询时,可以是where in 也可以是 where not in去筛选where的筛选条件
一般的
| 等于 | = |
| 不等于 | !=或者<> |
| 大于/大于等于 | > >= |
| 小于/小于等于 | < <= |
| 在某一范围内 | between and |
| 在子查询内 | where (not) in |
显示条件限制
一般的限制查询到的数据的显示有order by升序/降序,limit 限制个数