1.11 创建新表及单表增删改
1、创建新表
- 在navicat中右键创建新数据库,再新建查询。
- 注意,创建新数据库时选取字符集为utf8。
- 利用sql语句创建新表,也可以选择在navicat for mysql 中直接创建。
create table 表名(字段名 数据类型) 约束
- 举个栗子:创建一个学生表student,列有:id(学生id),name(学生姓名),classid(学生所在班级。
- 其中,在id(学生姓名)后加int(2)指明数值类型,primary key 是将id设为主键。
- 在name(学生姓名)后加 varchar(255)指明其字符串类型,not null为约束其非空。
- 注意:这里的int(2)并不是存储在数据库中的具体的长度,不要认为为int(2)只能存储 2个长度的数字。
- 在官方文档中,int(M)对于整数类型,M表示最大显示宽度。最大显示宽度为255。显示宽度与类型可以包含的值的范围无关
create table student(id int(2) primary key,name varchar(255) not null,classid int(2))
2、添加表中数据
insert into 表名 values(a,b,c...)
- 注意,添加的数据结构要与表结构一致,这要求我们事先清楚表结构及各项约束。
- 举个栗子:向student表中添加字段:
- (1,‘张三’,1),(2,‘李四’,2),(3,‘王五’,2),(4,‘赵六’,2),(5,‘吴七’,3)
insert into student values(1,'张三',1)
- 此时学生表为:
id name classid
1 张三 1
2 李四 2
3 王五 2
4 赵六 2
5 吴七 3
3、删除表中数据
delete from 表名 where 条件
- 举个栗子:去除3班学生数据,即在classid为3的条件下,删除该条数据。
delete from student where classid = 3
4、更改表中数据
update 表名 set 更改操作 where 条件
- 举个栗子:更改学生王五的班级为1,即在学生姓名为王五条件下,更改classid为1。
update student set classid = 1 where name = '王五'
- 在mysql中,运算符还有很多,例如:
- 处理数值型数据的:>(大于),<(小于),=(等于),<> / !=(不等于)
- 数值在某个区间(a,b):between a and b (使用时注意一定要遵循a小于b的原则),注意是包括两端数字a,b的。
- 数值在某个集合中(a,b,c):in(a,b,c)
- 处理字符型数据:is(是),not(不是)
- like(模糊运算符,类似于)一般会与两个特殊字符联合使用:_(下划线)表示匹配任意一个字符,%(百分号)表示匹配0个或者任意多个字符。
- 举个栗子:删除学生吴七的数据,即删除学生名字类似于’_七’的学生数据。
delete from student where name like '_七'
- 注意,我们的<>(不等于)不能用来判空,is null和 isnull 用于检验一个值是否为空值,如果为非空,返回值为 1;否则返回值为 0。
5、显示student表的所有数据
- 这里运用select子语句,选中学生表中所有数据。*代表所有数据,语句后也可以加where条件,这是查询语句的基本句式。
- 举个栗子:查询学生表中所有一班学生姓名,即在classid等于1的条件下,选取学生表姓名name
select name from student where classid = 1
- 最终我们的表student如下:
select * from student
id name classid
1 张三 1
2 李四 2
3 王五 1
4 赵六 2
- 学习小结:sql语句的上手十分简单,在实际生活中,大多任务所需要的是对多表的查询,这个也是以单表为基础的,特别是基础的逻辑运算和算法结构,虽然sql的基础语句都不复杂,但是后续的精进也很考验逻辑能力,应当勤学多练。