当前位置: 澳门新濠3559 > 编程 > 正文

1.为每个实体建立一张表,UPDATA 表(字段列表) S

时间:2019-12-27 17:08来源:编程
=================  SQL 四大语句 =========================== Mysql的基本操作,Mysql基本操作 SQL Structured Query Language(结构化查询语句) 包含了字段和记录。 有多个数据表而组成的库 E-R图的构建步骤

澳门新濠3559 1

=================  SQL 四大语句 ===========================

Mysql的基本操作,Mysql基本操作

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):

1.为每个实体建立一张表,UPDATA 表(字段列表) SET (字段=值。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:wampwwwsqlinit.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 约束条件;
改变当前表中的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。

3、增加约束,设定列col3的缺省值为0:

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

使用脚本文件进行数据库表的创建:
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
);
显示数据库表的结构:
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?

SQL Structured Query Language(结构化查询语句) 包含了字段和记录。 有多个数据表而组成的库 E-R图的构建步骤:...

请教一下,我在页面中,有2个封装的列表控件,没办法去给它赋ID值,只能用class来获取,但是两个class是一样的名字,怎么样让我在第一个列表里边赋值,然后将第一个table所有行的值给写到第二个table里边去呢~?他们两个列数都是一样的列明也是一样的~

1.删: DLEATE

DELETE FROM 表  WHERE 条件

2.增 INSERT

INSERT INTO 表(字段列表) VALUES(值列表)

3.改  UPDATE

UPDATA 表(字段列表) SET (字段=值,字段=值,。。。。) WHERE 条件

4.查 SELECT

SELECT * FROM 表


子句:

===================  WHERE 条件  ==========================

WHERE name = 'blue'

WHERE age = 18

WHERE age<18

WHERE age>= 18

WHERE age>=18 AND score<60

WHERE cach>100 OR score>10000

=====================  ORDER 排序  ==========================

ORDER BY age ASC/DESC

ASC-升序(从小到大)

DESC-降序

ORDER BY price DESC

ORDER BY price ASC

*价格(price)升序排列,如果价格相同再按照销(asles)量排序

ORDER BY price ASC, sales DESC

=================  GROUP  聚类--合并相同  =====================

*统计每个班人数

COUNT  -----------------  计数

SELECT COUNT(*澳门新濠3559,) FORM class_table  ==>  统计class表内总数

SELECT * FROM class_table GROUP BY class; ==>去重

SELECT class,COUNT(class) FROM class_table GROUP BY  class;  ==> 查询class表,计数class 从class_table


GROUP 统计

*统计每个班平均分数

SELECT * FORM student_table;  ==>

SELECT * FROM student_table GROUP BY CLASS; ==>

SELECT class, AVG(score) FROM student_table GROUP BY class;  ==>

*每个班级的最高、最低分

SELECT class,MAX(score),MIN(score) FROM student_table GROUP BY class;

*价格总价

SELECT name,price FROM sales_table GROUP BY name;

SELECT name,SUM(price) FROM sales_table GROUP BY name ORDER BY SUM(price) DESC;


===============  LIMIT --限制输出 分页  ===============

1.所有数据给前段

2.后台只给部分数据

LIMIT 10 从10页开始

LIMIT 5,8  从5页开始到后8页

第1页  0,20  0~19

第2页 20,20  20~39

第n页 (n-1),20  n~n+20


字句之间顺序

WHERE ==>  GROUP  ==> ORDER  ==>  LIMIT 


SELECT class,COUNT(class) FROM student_table

WHERE score>60

GROUP BY class

ORDER BY COUNT(class) DESC

LIMIT 2;


数据库导出 -- 右键 -- 转储SQL文件

数据库导入 -- 右键 -- 运行SQL文件


编辑:编程 本文来源:1.为每个实体建立一张表,UPDATA 表(字段列表) S

关键词: