Sql中表的操作

来源:互联网 发布:c语言基本数据类型长度 编辑:程序博客网 时间:2024/06/05 00:25

SQL操作数据库中表:创建表之约束及建表

Ø  约束有什么作用以及约束有哪些分类?

Ø  创建表需要注意什么?使用工具就不会出现这种情况

       约束的作用:用来规范数据的完整性。

       单表的约束分类:

                                   主键约束:primarykey

                                   唯一性约束:unique

                                   非空约束:not null

       注意一个表中的主键只有一个。

       创建表需要注意:创建表之前要有数据库,并且通过” use 数据库名”来使用一个数据库,再在这个数据库里面创建表:

SQL操作数据库中表:查看所有表和查看某个表结构

掌握语法结构,重点是关键字:show tablesdesc表名。

查看所有表:show tables;
查看某个表结构:desc 表名;

SQL操作数据库中表:删除表
删除表和删除数据库和相似:drop table 表名;


SQL操作数据库中表:修改表

Ø  总结一下修改表的sql语句有哪些特征?

①  、修改表都是以 alter table表名开头的。

②  、添加列使用add,删除列使用drop,修改列的长度使用modify,改变列名使用change

  修改表名使用rename to,修改表的字符集 character set


SQL操作数据库中表的记录:添加记录

Ø  增加一条记录的语法是什么,关键字是什么?

Ø  有哪些注意事项?

1、语法:关键字是:insert into

①   、给某几列插入数据:insert into 表名(列1,列2,列3…) values(值1,值2,值3…);

②   、给所有列插入数据:insert into 表名values(值1,值2,值3…);   有多少列就写多少个值

③   、一次性插入多行数据: insert into 表名values(值1,值2,值3…), (值1,值2,值3…), (值1,值2,值3…)…;

2、注意事项:

①   、值的类型要与数据库中列的类型一致。

②   、值的顺序要与列的顺序保持一致。

③   、插入值的长度不能超过列规定的长度。

、对于字符串和时间的值,要使用引号括起来。

SQL操作数据库中表的记录:添加中文记录
产生乱码的原因是什么?
如何解决乱码问题,有什么弊端?
1、 因为window操作系统是中文环境,cmd窗口的字符集是gbk编码,而我们的数据库系统中的client端编码是utf8,两个码表不统一,所以会产生乱码。
查看数据库的字符集:show variables like ‘%character%’;
2、 找到mysql的按照目录(C:\Program Files (x86)\MySQL\MySQL Server 5.5)----》打开my.ini文件----》找到client字符集,修改成gbk。

Ø  修改一条记录的语法是什么,关键字是什么?

Ø  有哪些注意事项?

1、语法:关键字update

update 表名 set 列名1=值1,列名2=值2…[where条件];

如果没有带条件,那么就是把这一列的值都修改了

SQL操作数据库中表的记录:删除记录
删除记录的语法是什么,关键字是什么?
有哪些注意事项?
两种删除表数据的方式有什么区别?
1、 delete from 表名 [where 条件]
2、 注意事项:
、删除数据是删除一行数据
、当不带条件时,表示删除表里面所有数据。
3、 delete from 表名 和truncate table 表名 两种方式的区别:
delete from 表名:是DML语句,一条一条的删除数据,事务可以作用在DML语句上。
truncate table 表名:是DDL语句,先删除表,再创建一个跟之前表一样结构的新表,事务不能作用在DDL语句上。

SQL操作数据库中表的记录:查询操作、基本查询
基本查询的语法结构是什么,关键字是什么?
查询支持算数运算和如何取别名?
select * from 表名----------------------------------------------->查询所有信息
select列1,列2…from 表名--------------------------------->查询某几列的信息


SQL操作数据库中表的记录:查询操作、条件查询
条件查询使用什么关键字?
模糊查询使用什么关键字,_和%有什么区别?
in和between..and有什么区别?
1、使用where关键字表示条件查询,里面可包含如下关键字:
>  ,  <  ,  >=  ,  =<  ,  <>  ,  =
2、模糊查询使用like关键字

like可以进行模糊查询,在like子句中可以使用_或者%作为占位符。_只能代表一个字符,而%可以代表任意个字符。
* like ‘李_’ :名字中必须是两个字,而且是姓李的。
* like ‘李%’ :名字中姓李的学生,李字后可以有1个或任意个字符。
* like ‘%四’ :名字中以四结尾的。
* like ‘%王%’ :只要名称中包含这个字就可以。


3、 in和between.. and..有什么区别
in:是在给定的几个值之间查询。
between.. and:取介于两个值之间的数据,是在一个范围内查询。相当于where xxx>a and xxx<b;
条件关联:and , or , not,可以连接多个条件
案例1:>  ,  <  ,  >=  ,  =<  ,  <>  ,  =


SQL操作数据库中表的记录:查询操作、排序查询

Ø  排序查询的语法结构以及关键字是什么?

              语法结构:select * from 表名[where 条件] order by 列名 asc/desc,列名 asc/desc …


SQL操作数据库中表的记录:查询操作、聚合函数查询

Ø  常见的聚合函数有有哪些,分别有什么作用?

       sum(字段名); 查询某一列数据总和

区别:SUM(english)+SUM(chinese)+SUM(math):是先计算每一列之和再求总和;
  SUM(english+chinese+math):是先计算每个人的english、chinese、math之和再求总和
如何某个人的成绩存在null,这两种方式求总和就不一样了(null和一个数做算数运算等于null),但是我们可以使用ifnull函数

count(字段名),统计数量

max(字段名),计算最大值
 
min(字段名),计算最小值

avg(字段名),计算平均值


SQL操作数据库中表的记录:查询操作、分组查询

Ø  分组查询的语法结构和关键字是什么?

Ø  如果使用带有聚合函数的条件过滤或者分组后过滤,该怎么做?

Ø  总结完整的查询语句的语法格式是什么?

1、分组查询的语法结构:group by 字段名

e) 分组查询:
关键字:group by 列名
select sum(price) from orderitem group by product having sum(price) > 5000;


总结完成的查询语句:select * from 表名 where 条件 group by 列名 having 条件 order by 列名 asc/desc;