1.SQL语言基础-mySql.doc
文本预览下载声明
第一节 SQL语言基础
目标: 掌握sql建表,CRUD常用语法;
能使用复杂的查询语句; 目 录
1.创建表: 3
1.mySQL中建库: 3
2.创建表: 3
2.更新表结构: 4
2.管理约束: 4
1.主键: 5
2.外键: 5
3.唯一性约束: 6
4.创建索引: 6
3.Insert插入数据: 6
1.向表中插入一行完整数据: 7
2.插入部分数据: 7
3.插入一个查询结果: 7
4.update/Delete语句: 8
1.更新某一列: 8
2.更新多列: 9
3.删除表数据: 9
4.清空表: 9
5.事务支持: 9
6.Select简单查询: 10
1.简单查询: 10
2.对结果排序: 10
7.条件查询 11
1.非null查询 11
2.in查询: 11
3.模糊查询: 11
4.and or查询: 12
5.别名查询: 12
6.聚集查询: 13
7.常用函数查询: 14
8.分组查询: 14
9.使用子(组合)查询: 15
1.子查询示例1: 15
2.子查询示例2: 16
3.外连结查询: 16
10.sql语言总结: 17
1.sql语句分类: 17
1.根据性质分类: 17
2.根据操作对象分类: 17
2.sql数据类型和关键字: 18
1.sql的数据类型 18
2.sql关键字: 19
总结和任务: 19
一行好SQL, 胜过万行程序!
1.创建表:
1.mySQL中建库:
我们以mysql5.0为例,安装好后,从命令行登陆mysql:
在命令行输入mysql –u用户名 –p
然后根据提示输入密码,即登陆数据库:
登陆后,可以用show databases查看数据库中有哪些库:
其中的:
information_schema
mysql
test
这三个库是mysql安装后自带的,接下来,我们要创建自己的数据库来使用:
OK,我们自己创建的数据库名为netjavablog;要使用这个数据库,还必须再执行如下命令:
表示我们当前要使用的数据库是netjavaBlog。
OK,准备工作完毕,接下来开始练习sql语句:
2.创建表:
如创建用户信息表:
创建成功后,显示表结构:
2.更新表结构:
更新表的定义,使用ALTER TABLE命令:
给表中增加一列:
删除表中一列:
删除整个表:
2.管理约束:
约束(constraint):定义插入或处理数据库数据的规则。
1.主键:
主键所在列值是唯一的,用以唯一标识表中的一行数据。
例如,我们定义了BlogInfo表:
然后,修改这个表的id列为主键:
特别注意的是:主键列必须保持唯一,在本例中,id的值需要由插入程序保证其唯一性而不是依赖与数据库的自增长字段实现。
2.外键:
外键也是表中的一列,但其值必须在另外一个表的列中存在,外键用以保证表数据引用的完整性。
如果B表的b.aid列引用了A表的id做为外建,A表的id必须是A表的主键。
例如我们创建一个bloginfo表,用以保存用户所发表的日志信息每一条日志记录都必须对应于userinfo表的一个用户的id.
创建bloginfo表如下:
给bloginfo表的id_user列加上对userinfo表的id列的外键引用:
以上语句执行后,就会bloginfo表加上了一个名为fk_bloginfo_uid的外健引用约束;并且设定了级联删除当从userinfo表中删除一个用户时,此用户id对应的在bloginfo表中的记录都会delete!
要取消这个约束,只需执行如下语句即可:
注意:在mysql中,外键必须是其所在表中的主键且自增长,且引用双方的数据类型必须相同!
3.唯一性约束:
唯一性约束用以保证表中的一列(或一组列)数据的唯一性,类似于主键,但于主键有如下区别:
一个表只能有一个主键,但可有多个约束;
唯一约束列中可含有Null值;
唯一约束不能被定义为外键引用;
例如,在用户表中,所有的用户名字应是唯一的:
执行如上语句,就给userinfo表的name列加上了一个名为index_unique的唯一性约束,数据库在检查这个约束时使用HASH算法。
要取消此约束:
4.创建索引:
索引在数据库中用以加快搜索和排序的速度如果你查过字典的话;
前面我们创建的主键,唯一约束都是一种索引;索引可以提升查询速度,这并不意味着表中的索引越多越好,对于插入量大的表,建过多的索引显然不是合适的做法;如果
显示全部