SQL Structured Query Language(结构化查询语句)

包含了字段和记录。
有多个数据表而组成的库

E-R图的构建步骤:
1.为每个实体建立一张表;
2.为每个表选择一个主键;
3.增加外键以表示一对多的关系;
4.建立新表表示多对多的关系;
5.定义约束条件;
6.评价关系的质量进行改进;
7.为每个字段选择合适的数据类型和取值范围;

E-R模型由实体、属性和关系3个基本要素构成。

表示方法:

实体;矩形
属性:在矩形内部
关系:直线 1:1 、1:n 、n:n

主键:

唯一性、

NO NULL.
Primary Key
<pi>Serial——>auto_increment

外键:表A中的一个字段a对应于表B的主键b,则字段a成为表A的外键。

约束;
1.主键约束(Primary Key):
2.外键约束(Foreign Key):
3.唯一性约束(unique):
4.非空约束(not Null):
5.检查约束(check):
6.默认值约束(default):

show databases; 查看数据库信息
show engines;查看存储引擎信息
set table_type=InnoDB;设置当前默认存储引擎为InnoDB
show variables like ‘table_type’;
show create table table_name;
show variables like ‘collation%’; 查看当前的字符序
set names gbk;
一次性设置character_set_client.character_set_connection和character—_set_results的字符集为gbk

 

SQL脚本文件进行字符集的更改:文件后缀为.sql

set table_type=InnoDB;
show variable like ‘table_type’;
SET character_set_client = gbk;
SET character_set_connection = gbk;
SET character_set_database = gbk;
SET character_set_results = gbk;
SET character_set_server = gbk;
SET character_database = gbk_chinese_ci;
SET character_connection = gbk_chinese_ci;
SET character_server = gbk_chinese_ci;
show variables like ‘character%’;
show variables like ‘collation%’;

在命令行中执行脚本文件: \. C:\wamp\www\sql\init.sql

数据库的管理:

 

创建数据库:

create database database_name;

选择当前操作的数据库:

use database_name;

显示数据库的结构:

show create database database_name;

删除数据库:
drop database database_name;
数据库表的管理:
create table table_name{
column_name1 数据类型 [约束条件]
…..
column_name(n) 数据类型 [约束条件]
}
删除当前表中的列 向当前已存在的表中添加列:
alter table table_name alter table table_name
drop column column_name; add column datatype 约束条件;
1.为每个实体建立一张表。改变当前表中的column的datatype
1、修改列类型,比如列为nvarch类型,修改其长度为100:
alter table table_name
alter column column_name datatype ALTER TABLE tb ALTER COLUMN col
nvarchar(100)

2、增加一列:

ALTER TABLE tb ADD col2 nvarchar(100) null

表中存在数据时,新增加的列必须为null或者identity。

1.为每个实体建立一张表。3、增加约束,设定列col3的缺省值为0:

ALTER TABLE tb ADD CONSTRAINT DF_col3 DEFAULT 0 FOR col3
数据类型:
数值:
字符串:
日期:
附加属性:
NULL:
auto_increment:

使用脚本文件进行数据库表的创建:
1.为每个实体建立一张表。use student; 首先声明操作的数据库;
create table classes( 进行数据库表的创建;
class_id int auto_increment primary key, 表中的属性名 类型 约束条件
class_no char(10) not NULL unique,
class_name char(20) not NULL
);
显示数据库表的结构:
1.为每个实体建立一张表。show tables; 查看当前操作数据库中所有表名;
describe table_name; 查看classes表的表结构;
show create table table_name;
查看创建表名为table_name的创建语句,从而查看表结构
删除数据库表:
drop table table_name;

表记录的更新操作:
添加:
insert into table_name [(字段列表)] values(值列表);
insert into classes(class_in,class_no,class_name)
values(NULL,’10chinese’,’10中文’);
insert into classes values(NULL,’10chinese’,’10中文’);
当向表中所有列添加数据时,字段列表可以省略;
修改:
update table_name;
set column_name = new_value[,next_column = new_value2····]
[where 条件表达式]
update student set student=’张三丰’ where student_id=1;
update score set grade=grade-5;
update score set grade=grade+10 where student_id=1 and courses_id=2;
删除:
delete from table_name
[where 条件表达式];
delete form score where student_id=1 and course_id=2;
查询:
select 字段列表 * :字段列表为数据源的全部字段。
表名.* :多表查询时,指定某个表的全部字段。
字段列表 :指定所需要显示的列。
form 数据源
[where 过滤条件]
[group by 分组表达式]
[having 分组过滤条件]
[order by 排序表达式[asc|desc]];

select 字段列表
form 数据源
limit [start,end]length; start 的值默认为0; top 2 top 50 percent
select * from score limit 0,3; 查询score表的前3条记录。
等效于:select * from score limit 3;

select * from score where grade>80;
select * from score order by grade desc;
select sum(grade) from score where course_id=1;
使用聚合函数返回汇总值;
sum()/avg()/count()/max()/min()

特殊字符的转义使用反斜线符号’\’开头

how to create INDEX in a table?
how to alter the datatype of a table’s column?
how create a view?
what is the view?

发表评论

电子邮件地址不会被公开。 必填项已用*标注