数据库(DataBase,简称DB)
概念:长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据"仓库"
作用:保存,并能安全管理数据(如:增删改查等),减少冗余…
数据库总览 :
关系型数据库 (SQL) MySQL , Oracle , SQL Server , SQLite , DB2 , … 关系型数据库通过外键关联来建立表与表之间的关系 非关系型数据库(NOSQL) Redis , MongoDB , … 非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
DBMS 数据库管理系统 ( DataBase Management System ):数据库管理软件 , 科学组织和存储数据 , 高效地获取和维护数据 Mysqly也算是数据库管理系统,这里主要介绍Mysql的安装和使用
建议参考此篇博客:https://www.cnblogs.com/hellokuangshen/p/10242958.html 进行安装
在管理员模式下:
启动Mysql服务:net start mysql 若提示拒绝访问(发生系统错误5),说明没有管理员权限关闭Mysql服务:net stop mysql卸载Mysql:sc delete mysql登录(以root的身份初次登录,会进入MySql管理页面):user -uroot -p123456 MySql初始密码为123456在MySql管理页面下:
创建名字为name的数据库:create database name;删除名字为name的数据库:drop database name;查看所有数据库:show databases;使用数据库:use database;查看数据库下的所有表:show tables;刷新数据库:flush privileges;查询名为use的命令的使用方法:? use;退出MySql管理页面:exit;注意: 1.sql语句不区分大小写 2.每行sql语句都要以分号结尾(可以没有分号,但最好加上)
SQLyog,可手动操作,管理MySQL数据库的软件,建议在安装Mysql后安装此软件。 该工具特点 : 简洁 , 易用 , 图形化
打开SQLyog后,新建连接,如下图所示: 单击“测试连接”,出现如下图所示的弹窗,说明连接成功,再次点击“连接”即可: 使用SQLyog管理工具自己完成以下操作 :
连接本地MySQL数据库
新建MySchool数据库
数据库名称myschool新建数据库表(grade)
字段 gradeID:int(11) ,Primary Key (pk)gradeName:varchar(50)在历史记录中可以看到相对应的数据库操作的语句
根据上一小节的例子,可以在“信息”选项卡中查看创建此表(grade)的sql语句 创建grade表的sql语句如下:
CREATE TABLE grade ( gradeId int(11) NOT NULL COMMENT '年级Id', gradeName varchar(50) DEFAULT NULL COMMENT '年级名字', PRIMARY KEY (gradeId) ) ENGINE=InnoDB DEFAULT CHARSET=utf8根据此段代码,创建表的sql语句如下:
#创建表格式 CREATE TABLE 表名( 字段名 数据类型(长度) 修饰符, 字段名 数据类型(长度) 修饰符, 字段名 数据类型(长度) 修饰符 )而创建数据库的sql语句如下:
#创建数据库 CREATE DATABASE 数据库名;结构化查询语句分类:
名称解释命令DDL(数据定义语言)定义和管理数据对象,如数据库,数据表等CREATE、DROP、ALTERDML(数据操作语言)用于操作数据库对象中所包含的数据INSERT、UPDATE、DELETEDQL(数据查询语言)用于查询数据库数据SELECTDCL(数据控制语言用来管理数据库的语言,包括管理权限及数据更改GRANT、COMMIT、ROLLBACK类型 说明 最大长度
char 固定长字符串,检索快但浪费空间 0 <= M <= 255 M字符
varchar 可变字符串 0 <= M <= 65535 变长度
tinytext 微型文本串 28-1 字节
text 文本串 216-1 字节
日期和时间型数值类型
类型 说明 取值范围
DATE YYYY-MM-DD,日期格式 1000-01-01~9999-12-31
TIME Hh:mm:ss,时间格式 -838:59:59~838:59:59
DATETIME YY-MM-DD hh:mm:ss 1000-01-01 00:00:00 至 9999-12-31 23:59:59
TIMESTAMP YYYYMMDDhhmmss格式表示的时间戳 197010101000000~2037年的某个时刻
YEAR YYYY格式的年份值 1901~2155
NULL值
理解为"没有值"或"未知值"不要用NULL进行算术运算 , 结果仍为NULL数据字段属性 结构化查询语句分类: UnSigned :
无符号的 声明该数据列不允许负数
ZEROFILL :
0填充的 不足位数的用0来填充 , 如int(3),5则为005
Auto_InCrement :
自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认) 通常用于设置主键 , 且为整数类型 可定义起始值和步长
当前表设置步长(AUTO_INCREMENT=100):只影响当前表SET @@auto_increment_increment=5:影响所有使用自增的表(全局)NULL 和 NOT NULL :
默认为NULL , 即没有插入该列的数值 如果设置为NOT NULL,则该列必须有值
DEFAULT :
默认的 用于设置默认值
例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值修改数据表
修改表名 :
ALTER TABLE 旧表名 RENAME AS 新表名 1
添加字段 :
ALTER TABLE 表名 ADD字段名 列属性[属性] 1
修改字段 :
ALTER TABLE 表名 MODIFY 字段名 列类型[属性] ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性] 12
删除字段 :
ALTER TABLE 表名 DROP 字段名 1 外键 概念:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。 在实际操作中,将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键(foreign key)。 作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据,约束。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。 创建外键有两种方式:
建表时指定外键约束
CREATE TABLE grade ( gradeid INT(10) NOT NULL AUTO_INCREMENT COMMENT ‘年级ID’, gradename VARCHAR(50) NOT NULL COMMENT ‘年级名称’, PRIMARY KEY (gradeid) ) ENGINE=INNODB DEFAULT CHARSET=utf8
#(学号,姓名,性别,年级,手机,地址,出生日期,邮箱,身份证号)
CREATE TABLE student ( studentno INT(4) NOT NULL COMMENT ‘学号’, studentname VARCHAR(20) NOT NULL DEFAULT ‘匿名’ COMMENT ‘姓名’, sex TINYINT(1) DEFAULT ‘1’ COMMENT ‘性别’, gradeid INT(10) DEFAULT NULL COMMENT ‘年级’, phoneNum VARCHAR(50) NOT NULL COMMENT ‘手机’, address VARCHAR(255) DEFAULT NULL COMMENT ‘地址’, borndate DATETIME DEFAULT NULL COMMENT ‘生日’, email VARCHAR(50) DEFAULT NULL COMMENT ‘邮箱’, idCard VARCHAR(18) DEFAULT NULL COMMENT ‘身份证号’, PRIMARY KEY (studentno), KEY FK_gradeid (gradeid), CONSTRAINT FK_gradeid FOREIGN KEY (gradeid) REFERENCES grade (gradeid) ) ENGINE=INNODB DEFAULT CHARSET=utf8 1234567891011121314151617181920212223242526
建表后修改
ALTER TABLE student ADD CONSTRAINT FK_gradeid FOREIGN KEY (gradeid) REFERENCES grade (gradeid); 123 增删查改
增加
INSERT INTO 表名[(字段1,字段2,字段3,…)] VALUES(‘值1’,‘值2’,‘值3’) 1 注意 :
字段或值之间用英文逗号隔开. '字段1,字段2…'该部分可省略 , 但添加的值务必与表结构、数据列、顺序相对应,且数量一致 可同时插入多条数据,values 后用英文逗号隔开
INSERT INTO grade(gradename) VALUES (‘大一’);
INSERT INTO grade VALUES (‘大二’);
INSERT INTO grade(gradename) VALUES (‘大三’),(‘大四’); 12345678910111213
删除
DELETE FROM 表名 [WHERE condition]; 1 注意 : condition为筛选条件 , 如不指定则删除该表的所有列数据 或者 TRUNCATE [TABLE] table_name; 1 用于完全清空表数据 , 但表结构 , 索引 , 约束等不变 ; 注意 : 区别于DELETE命令
相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
不同 :
使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器使用TRUNCATE TABLE不会对事务有影响CREATE TABLE test ( id INT(4) NOT NULL AUTO_INCREMENT, coll VARCHAR(20) NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO test(coll) VALUES(‘row1’),(‘row2’),(‘row3’);
DELETE FROM test;
TRUNCATE TABLE test;
123456789101112131415161718192021
修改
UPDATE 表名 SET column_name=value [,column_name2=value2,…] [WHERE condition]; 1 注意 :
column_name:为要更改的数据列
value:为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果
condition:为筛选条件 , 如不指定则修改该表的所有列数据
查询
SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,…]]} FROM table_name [as table_alias] [left | right | inner join table_name2] #联合查询 [WHERE …] #指定结果需满足的条件 [GROUP BY …] #指定结果按照哪几个字段来分组 [HAVING] #过滤分组的记录必须满足的次要条件 [ORDER BY …] #指定查询记录按一个或多个条件排序 [LIMIT {[offset,]row_count | row_countOFFSET offset}]; # 指定查询的记录从哪条至哪条 1234567891011 以接下来的sql语句作为模板,运用select可以实现三种功能: /* SQLyog Ultimate v10.00 Beta1 MySQL - 5.7.19 : Database - school
*/
/*!40101 SET NAMES utf8 */;
/!40101 SET SQL_MODE=’’/;
/!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 /; /!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 /; /!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO’ /; /!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 /; CREATE DATABASE /!32312 IF NOT EXISTS/school /*!40100 DEFAULT CHARACTER SET utf8 */;
USE school;
/*Table structure for table grade */
DROP TABLE IF EXISTS grade;
CREATE TABLE grade ( GradeID INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘年级编号’, GradeName VARCHAR(50) NOT NULL COMMENT ‘年级名称’, PRIMARY KEY (GradeID) ) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
/*Data for the table grade */
INSERT INTO grade(GradeID,GradeName) VALUES (1,‘大一’),(2,‘大二’),(3,‘大三’),(4,‘大四’),(5,‘预科班’);
/*Table structure for table result */
DROP TABLE IF EXISTS result;
CREATE TABLE result ( StudentNo INT(4) NOT NULL COMMENT ‘学号’, SubjectNo INT(4) NOT NULL COMMENT ‘课程编号’, ExamDate DATETIME NOT NULL COMMENT ‘考试日期’, StudentResult INT(4) NOT NULL COMMENT ‘考试成绩’, KEY SubjectNo (SubjectNo) ) ENGINE=INNODB DEFAULT CHARSET=utf8;
/*Data for the table result */
INSERT INTO result(StudentNo,SubjectNo,ExamDate,StudentResult) VALUES (1000,1,‘2013-11-11 16:00:00’,94),(1000,2,‘2012-11-10 10:00:00’,75),(1000,3,‘2011-12-19 10:00:00’,76),(1000,4,‘2010-11-18 11:00:00’,93),(1000,5,‘2013-11-11 14:00:00’,97),(1000,6,‘2012-09-13 15:00:00’,87),(1000,7,‘2011-10-16 16:00:00’,79),(1000,8,‘2010-11-11 16:00:00’,74),(1000,9,‘2013-11-21 10:00:00’,69),(1000,10,‘2012-11-11 12:00:00’,78),(1000,11,‘2011-11-11 14:00:00’,66),(1000,12,‘2010-11-11 15:00:00’,82),(1000,13,‘2013-11-11 14:00:00’,94),(1000,14,‘2012-11-11 15:00:00’,98),(1000,15,‘2011-12-11 10:00:00’,70),(1000,16,‘2010-09-11 10:00:00’,74),(1001,1,‘2013-11-11 16:00:00’,76),(1001,2,‘2012-11-10 10:00:00’,93),(1001,3,‘2011-12-19 10:00:00’,65),(1001,4,‘2010-11-18 11:00:00’,71),(1001,5,‘2013-11-11 14:00:00’,98),(1001,6,‘2012-09-13 15:00:00’,74),(1001,7,‘2011-10-16 16:00:00’,85),(1001,8,‘2010-11-11 16:00:00’,69),(1001,9,‘2013-11-21 10:00:00’,63),(1001,10,‘2012-11-11 12:00:00’,70),(1001,11,‘2011-11-11 14:00:00’,62),(1001,12,‘2010-11-11 15:00:00’,90),(1001,13,‘2013-11-11 14:00:00’,97),(1001,14,‘2012-11-11 15:00:00’,89),(1001,15,‘2011-12-11 10:00:00’,72),(1001,16,‘2010-09-11 10:00:00’,90),(1002,1,‘2013-11-11 16:00:00’,61),(1002,2,‘2012-11-10 10:00:00’,80),(1002,3,‘2011-12-19 10:00:00’,89),(1002,4,‘2010-11-18 11:00:00’,88),(1002,5,‘2013-11-11 14:00:00’,82),(1002,6,‘2012-09-13 15:00:00’,91),(1002,7,‘2011-10-16 16:00:00’,63),(1002,8,‘2010-11-11 16:00:00’,84),(1002,9,‘2013-11-21 10:00:00’,60),(1002,10,‘2012-11-11 12:00:00’,71),(1002,11,‘2011-11-11 14:00:00’,93),(1002,12,‘2010-11-11 15:00:00’,96),(1002,13,‘2013-11-11 14:00:00’,83),(1002,14,‘2012-11-11 15:00:00’,69),(1002,15,‘2011-12-11 10:00:00’,89),(1002,16,‘2010-09-11 10:00:00’,83),(1003,1,‘2013-11-11 16:00:00’,91),(1003,2,‘2012-11-10 10:00:00’,75),(1003,3,‘2011-12-19 10:00:00’,65),(1003,4,‘2010-11-18 11:00:00’,63),(1003,5,‘2013-11-11 14:00:00’,90),(1003,6,‘2012-09-13 15:00:00’,96),(1003,7,‘2011-10-16 16:00:00’,97),(1003,8,‘2010-11-11 16:00:00’,77),(1003,9,‘2013-11-21 10:00:00’,62),(1003,10,‘2012-11-11 12:00:00’,81),(1003,11,‘2011-11-11 14:00:00’,76),(1003,12,‘2010-11-11 15:00:00’,61),(1003,13,‘2013-11-11 14:00:00’,93),(1003,14,‘2012-11-11 15:00:00’,79),(1003,15,‘2011-12-11 10:00:00’,78),(1003,16,‘2010-09-11 10:00:00’,96),(1004,1,‘2013-11-11 16:00:00’,84),(1004,2,‘2012-11-10 10:00:00’,79),(1004,3,‘2011-12-19 10:00:00’,76),(1004,4,‘2010-11-18 11:00:00’,78),(1004,5,‘2013-11-11 14:00:00’,81),(1004,6,‘2012-09-13 15:00:00’,90),(1004,7,‘2011-10-16 16:00:00’,63),(1004,8,‘2010-11-11 16:00:00’,89),(1004,9,‘2013-11-21 10:00:00’,67),(1004,10,‘2012-11-11 12:00:00’,100),(1004,11,‘2011-11-11 14:00:00’,94),(1004,12,‘2010-11-11 15:00:00’,65),(1004,13,‘2013-11-11 14:00:00’,86),(1004,14,‘2012-11-11 15:00:00’,77),(1004,15,‘2011-12-11 10:00:00’,82),(1004,16,‘2010-09-11 10:00:00’,87),(1005,1,‘2013-11-11 16:00:00’,82),(1005,2,‘2012-11-10 10:00:00’,92),(1005,3,‘2011-12-19 10:00:00’,80),(1005,4,‘2010-11-18 11:00:00’,92),(1005,5,‘2013-11-11 14:00:00’,97),(1005,6,‘2012-09-13 15:00:00’,72),(1005,7,‘2011-10-16 16:00:00’,84),(1005,8,‘2010-11-11 16:00:00’,79),(1005,9,‘2013-11-21 10:00:00’,76),(1005,10,‘2012-11-11 12:00:00’,87),(1005,11,‘2011-11-11 14:00:00’,65),(1005,12,‘2010-11-11 15:00:00’,67),(1005,13,‘2013-11-11 14:00:00’,63),(1005,14,‘2012-11-11 15:00:00’,64),(1005,15,‘2011-12-11 10:00:00’,99),(1005,16,‘2010-09-11 10:00:00’,97),(1006,1,‘2013-11-11 16:00:00’,82),(1006,2,‘2012-11-10 10:00:00’,73),(1006,3,‘2011-12-19 10:00:00’,79),(1006,4,‘2010-11-18 11:00:00’,63),(1006,5,‘2013-11-11 14:00:00’,97),(1006,6,‘2012-09-13 15:00:00’,83),(1006,7,‘2011-10-16 16:00:00’,78),(1006,8,‘2010-11-11 16:00:00’,88),(1006,9,‘2013-11-21 10:00:00’,89),(1006,10,‘2012-11-11 12:00:00’,82),(1006,11,‘2011-11-11 14:00:00’,70),(1006,12,‘2010-11-11 15:00:00’,69),(1006,13,‘2013-11-11 14:00:00’,64),(1006,14,‘2012-11-11 15:00:00’,80),(1006,15,‘2011-12-11 10:00:00’,90),(1006,16,‘2010-09-11 10:00:00’,85),(1007,1,‘2013-11-11 16:00:00’,87),(1007,2,‘2012-11-10 10:00:00’,63),(1007,3,‘2011-12-19 10:00:00’,70),(1007,4,‘2010-11-18 11:00:00’,74),(1007,5,‘2013-11-11 14:00:00’,79),(1007,6,‘2012-09-13 15:00:00’,83),(1007,7,‘2011-10-16 16:00:00’,86),(1007,8,‘2010-11-11 16:00:00’,76),(1007,9,‘2013-11-21 10:00:00’,65),(1007,10,‘2012-11-11 12:00:00’,87),(1007,11,‘2011-11-11 14:00:00’,69),(1007,12,‘2010-11-11 15:00:00’,69),(1007,13,‘2013-11-11 14:00:00’,90),(1007,14,‘2012-11-11 15:00:00’,84),(1007,15,‘2011-12-11 10:00:00’,95),(1007,16,‘2010-09-11 10:00:00’,92),(1008,1,‘2013-11-11 16:00:00’,96),(1008,2,‘2012-11-10 10:00:00’,62),(1008,3,‘2011-12-19 10:00:00’,97),(1008,4,‘2010-11-18 11:00:00’,84),(1008,5,‘2013-11-11 14:00:00’,86),(1008,6,‘2012-09-13 15:00:00’,72),(1008,7,‘2011-10-16 16:00:00’,67),(1008,8,‘2010-11-11 16:00:00’,83),(1008,9,‘2013-11-21 10:00:00’,86),(1008,10,‘2012-11-11 12:00:00’,60),(1008,11,‘2011-11-11 14:00:00’,61),(1008,12,‘2010-11-11 15:00:00’,68),(1008,13,‘2013-11-11 14:00:00’,99),(1008,14,‘2012-11-11 15:00:00’,77),(1008,15,‘2011-12-11 10:00:00’,73),(1008,16,‘2010-09-11 10:00:00’,78),(1009,1,‘2013-11-11 16:00:00’,67),(1009,2,‘2012-11-10 10:00:00’,70),(1009,3,‘2011-12-19 10:00:00’,75),(1009,4,‘2010-11-18 11:00:00’,92),(1009,5,‘2013-11-11 14:00:00’,76),(1009,6,‘2012-09-13 15:00:00’,90),(1009,7,‘2011-10-16 16:00:00’,62),(1009,8,‘2010-11-11 16:00:00’,68),(1009,9,‘2013-11-21 10:00:00’,70),(1009,10,‘2012-11-11 12:00:00’,83),(1009,11,‘2011-11-11 14:00:00’,88),(1009,12,‘2010-11-11 15:00:00’,65),(1009,13,‘2013-11-11 14:00:00’,91),(1009,14,‘2012-11-11 15:00:00’,99),(1009,15,‘2011-12-11 10:00:00’,65),(1009,16,‘2010-09-11 10:00:00’,83),(1010,1,‘2013-11-11 16:00:00’,83),(1010,2,‘2012-11-10 10:00:00’,87),(1010,3,‘2011-12-19 10:00:00’,89),(1010,4,‘2010-11-18 11:00:00’,99),(1010,5,‘2013-11-11 14:00:00’,91),(1010,6,‘2012-09-13 15:00:00’,96),(1010,7,‘2011-10-16 16:00:00’,72),(1010,8,‘2010-11-11 16:00:00’,72),(1010,9,‘2013-11-21 10:00:00’,98),(1010,10,‘2012-11-11 12:00:00’,73),(1010,11,‘2011-11-11 14:00:00’,68),(1010,12,‘2010-11-11 15:00:00’,62),(1010,13,‘2013-11-11 14:00:00’,67),(1010,14,‘2012-11-11 15:00:00’,69),(1010,15,‘2011-12-11 10:00:00’,71),(1010,16,‘2010-09-11 10:00:00’,66),(1011,1,‘2013-11-11 16:00:00’,62),(1011,2,‘2012-11-10 10:00:00’,72),(1011,3,‘2011-12-19 10:00:00’,96),(1011,4,‘2010-11-18 11:00:00’,64),(1011,5,‘2013-11-11 14:00:00’,89),(1011,6,‘2012-09-13 15:00:00’,91),(1011,7,‘2011-10-16 16:00:00’,95),(1011,8,‘2010-11-11 16:00:00’,96),(1011,9,‘2013-11-21 10:00:00’,89),(1011,10,‘2012-11-11 12:00:00’,73),(1011,11,‘2011-11-11 14:00:00’,82),(1011,12,‘2010-11-11 15:00:00’,98),(1011,13,‘2013-11-11 14:00:00’,66),(1011,14,‘2012-11-11 15:00:00’,69),(1011,15,‘2011-12-11 10:00:00’,91),(1011,16,‘2010-09-11 10:00:00’,69),(1012,1,‘2013-11-11 16:00:00’,86),(1012,2,‘2012-11-10 10:00:00’,66),(1012,3,‘2011-12-19 10:00:00’,97),(1012,4,‘2010-11-18 11:00:00’,69),(1012,5,‘2013-11-11 14:00:00’,70),(1012,6,‘2012-09-13 15:00:00’,74),(1012,7,‘2011-10-16 16:00:00’,91),(1012,8,‘2010-11-11 16:00:00’,97),(1012,9,‘2013-11-21 10:00:00’,84),(1012,10,‘2012-11-11 12:00:00’,82),(1012,11,‘2011-11-11 14:00:00’,90),(1012,12,‘2010-11-11 15:00:00’,91),(1012,13,‘2013-11-11 14:00:00’,91),(1012,14,‘2012-11-11 15:00:00’,97),(1012,15,‘2011-12-11 10:00:00’,85),(1012,16,‘2010-09-11 10:00:00’,90),(1013,1,‘2013-11-11 16:00:00’,73),(1013,2,‘2012-11-10 10:00:00’,69),(1013,3,‘2011-12-19 10:00:00’,91),(1013,4,‘2010-11-18 11:00:00’,72),(1013,5,‘2013-11-11 14:00:00’,76),(1013,6,‘2012-09-13 15:00:00’,87),(1013,7,‘2011-10-16 16:00:00’,61),(1013,8,‘2010-11-11 16:00:00’,77),(1013,9,‘2013-11-21 10:00:00’,83),(1013,10,‘2012-11-11 12:00:00’,99),(1013,11,‘2011-11-11 14:00:00’,91),(1013,12,‘2010-11-11 15:00:00’,84),(1013,13,‘2013-11-11 14:00:00’,98),(1013,14,‘2012-11-11 15:00:00’,74),(1013,15,‘2011-12-11 10:00:00’,92),(1013,16,‘2010-09-11 10:00:00’,90),(1014,1,‘2013-11-11 16:00:00’,64),(1014,2,‘2012-11-10 10:00:00’,81),(1014,3,‘2011-12-19 10:00:00’,79),(1014,4,‘2010-11-18 11:00:00’,74),(1014,5,‘2013-11-11 14:00:00’,65),(1014,6,‘2012-09-13 15:00:00’,88),(1014,7,‘2011-10-16 16:00:00’,86),(1014,8,‘2010-11-11 16:00:00’,77),(1014,9,‘2013-11-21 10:00:00’,86),(1014,10,‘2012-11-11 12:00:00’,85),(1014,11,‘2011-11-11 14:00:00’,86),(1014,12,‘2010-11-11 15:00:00’,75),(1014,13,‘2013-11-11 14:00:00’,89),(1014,14,‘2012-11-11 15:00:00’,79),(1014,15,‘2011-12-11 10:00:00’,73),(1014,16,‘2010-09-11 10:00:00’,68),(1015,1,‘2013-11-11 16:00:00’,99),(1015,2,‘2012-11-10 10:00:00’,60),(1015,3,‘2011-12-19 10:00:00’,60),(1015,4,‘2010-11-18 11:00:00’,75),(1015,5,‘2013-11-11 14:00:00’,78),(1015,6,‘2012-09-13 15:00:00’,78),(1015,7,‘2011-10-16 16:00:00’,84),(1015,8,‘2010-11-11 16:00:00’,95),(1015,9,‘2013-11-21 10:00:00’,93),(1015,10,‘2012-11-11 12:00:00’,79),(1015,11,‘2011-11-11 14:00:00’,74),(1015,12,‘2010-11-11 15:00:00’,65),(1015,13,‘2013-11-11 14:00:00’,63),(1015,14,‘2012-11-11 15:00:00’,74),(1015,15,‘2011-12-11 10:00:00’,67),(1015,16,‘2010-09-11 10:00:00’,65),(1016,1,‘2013-11-11 16:00:00’,97),(1016,2,‘2012-11-10 10:00:00’,90),(1016,3,‘2011-12-19 10:00:00’,77),(1016,4,‘2010-11-18 11:00:00’,75),(1016,5,‘2013-11-11 14:00:00’,75),(1016,6,‘2012-09-13 15:00:00’,97),(1016,7,‘2011-10-16 16:00:00’,96),(1016,8,‘2010-11-11 16:00:00’,92),(1016,9,‘2013-11-21 10:00:00’,62),(1016,10,‘2012-11-11 12:00:00’,83),(1016,11,‘2011-11-11 14:00:00’,98),(1016,12,‘2010-11-11 15:00:00’,94),(1016,13,‘2013-11-11 14:00:00’,62),(1016,14,‘2012-11-11 15:00:00’,97),(1016,15,‘2011-12-11 10:00:00’,76),(1016,16,‘2010-09-11 10:00:00’,82),(1017,1,‘2013-11-11 16:00:00’,100),(1017,2,‘2012-11-10 10:00:00’,88),(1017,3,‘2011-12-19 10:00:00’,86),(1017,4,‘2010-11-18 11:00:00’,73),(1017,5,‘2013-11-11 14:00:00’,96),(1017,6,‘2012-09-13 15:00:00’,64),(1017,7,‘2011-10-16 16:00:00’,81),(1017,8,‘2010-11-11 16:00:00’,66),(1017,9,‘2013-11-21 10:00:00’,76),(1017,10,‘2012-11-11 12:00:00’,95),(1017,11,‘2011-11-11 14:00:00’,73),(1017,12,‘2010-11-11 15:00:00’,82),(1017,13,‘2013-11-11 14:00:00’,85),(1017,14,‘2012-11-11 15:00:00’,68),(1017,15,‘2011-12-11 10:00:00’,99),(1017,16,‘2010-09-11 10:00:00’,76);
/*Table structure for table student */
DROP TABLE IF EXISTS student;
CREATE TABLE student ( StudentNo INT(4) NOT NULL COMMENT ‘学号’, LoginPwd VARCHAR(20) DEFAULT NULL, StudentName VARCHAR(20) DEFAULT NULL COMMENT ‘学生姓名’, Sex TINYINT(1) DEFAULT NULL COMMENT ‘性别,取值0或1’, GradeId INT(11) DEFAULT NULL COMMENT ‘年级编号’, Phone VARCHAR(50) NOT NULL COMMENT ‘联系电话,允许为空,即可选输入’, Address VARCHAR(255) NOT NULL COMMENT ‘地址,允许为空,即可选输入’, BornDate DATETIME DEFAULT NULL COMMENT ‘出生时间’, Email VARCHAR(50) NOT NULL COMMENT ‘邮箱账号,允许为空,即可选输入’, IdentityCard VARCHAR(18) DEFAULT NULL COMMENT ‘身份证号’, PRIMARY KEY (StudentNo), UNIQUE KEY IdentityCard (IdentityCard), KEY Email (Email) ) ENGINE=MYISAM DEFAULT CHARSET=utf8;
/*Data for the table student */
INSERT INTO student(StudentNo,LoginPwd,StudentName,Sex,GradeId,Phone,Address,BornDate,Email,IdentityCard) VALUES (1000,‘111111’,‘郭靖’,1,1,‘13500000001’,‘北京海淀区中关村大街1号’,‘1986-12-11 00:00:00’,‘test1@bdqn.cn’,‘450323198612111234’),(1001,‘123456’,‘李文才’,1,2,‘13500000002’,‘河南洛阳’,‘1981-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198112311234’),(1002,‘111111’,‘李斯文’,1,1,‘13500000003’,‘天津市和平区’,‘1986-11-30 00:00:00’,‘test1@bdqn.cn’,‘450323198611301234’),(1003,‘123456’,‘武松’,1,3,‘13500000004’,‘上海卢湾区’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612314234’),(1004,‘123456’,‘张三’,1,4,‘13500000005’,‘北京市通州’,‘1989-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311244’),(1005,‘123456’,‘张秋丽 ‘,2,1,‘13500000006’,‘广西桂林市灵川’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311214’),(1006,‘123456’,‘肖梅’,2,4,‘13500000007’,‘地址不详’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311134’),(1007,‘111111’,‘欧阳峻峰’,1,1,‘13500000008’,‘北京东城区’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311133’),(1008,‘111111’,‘梅超风’,1,1,‘13500000009’,‘河南洛阳’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311221’),(1009,‘123456’,‘刘毅’,1,2,‘13500000011’,‘安徽’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311231’),(1010,‘111111’,‘大凡’,1,1,‘13500000012’,‘河南洛阳’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311044’),(1011,‘111111’,‘奥丹斯’,1,1,‘13500000013’,‘北京海淀区中关村大街号’,‘1984-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198412311234’),(1012,‘123456’,‘多伦’,2,3,‘13500000014’,‘广西南宁中央大街’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311334’),(1013,‘123456’,‘李梅’,2,1,‘13500000015’,‘上海卢湾区’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311534’),(1014,‘123456’,‘张得’,2,4,‘13500000016’,'北京海淀区中关村大街号’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311264’),(1015,‘123456’,‘李东方’,1,4,‘13500000017’,‘广西桂林市灵川’,‘1976-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323197612311234’),(1016,‘111111’,‘刘奋斗’,1,1,‘13500000018’,‘上海卢湾区’,‘1986-12-31 00:00:00’,‘test1@bdqn.cn’,‘450323198612311251’),(1017,‘123456’,‘可可’,2,3,‘13500000019’,‘北京长安街1号’,‘1981-09-10 00:00:00’,‘test1@bdqn.cn’,‘450323198109108311’),(10066,’’,‘Tom’,1,1,‘13500000000’,’’,‘0000-00-00 00:00:00’,‘email@22.com’,‘33123123123123123’);
/*Table structure for table subject */
DROP TABLE IF EXISTS subject;
CREATE TABLE subject ( SubjectNo INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘课程编号’, SubjectName VARCHAR(50) DEFAULT NULL COMMENT ‘课程名称’, ClassHour INT(4) DEFAULT NULL COMMENT ‘学时’, GradeID INT(4) DEFAULT NULL COMMENT ‘年级编号’, PRIMARY KEY (SubjectNo) ) ENGINE=INNODB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
/*Data for the table subject */
INSERT INTO subject(SubjectNo,SubjectName,ClassHour,GradeID) VALUES (1,‘高等数学-1’,110,1),(2,‘高等数学-2’,110,2),(3,‘高等数学-3’,100,3),(4,‘高等数学-4’,130,4),(5,‘C语言-1’,110,1),(6,‘C语言-2’,110,2),(7,‘C语言-3’,100,3),(8,‘C语言-4’,130,4),(9,‘JAVA第一学年’,110,1),(10,‘JAVA第二学年’,110,2),(11,‘JAVA第三学年’,100,3),(12,‘JAVA第四学年’,130,4),(13,‘数据库结构-1’,110,1),(14,‘数据库结构-2’,110,2),(15,‘数据库结构-3’,100,3),(16,‘数据库结构-4’,130,4),(17,‘C#基础’,130,1);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE /; /!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS /; /!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS /; /!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 指定查询字段 查询表结果时 , 可指定查询结果的数据列
查询表中所有的数据列结果 , 采用 " * " 符号; 如 : SELECT * FROM student; 但是效率低 , 不推荐
SELECT * FROM student;
SELECT studentno,studentname FROM student; 12345 AS子句作为别名 AS子句作用 :
可给数据列取一个新别名 可给表去一个新别名 可把经计算或总结的结果用另一个新名称来代替
SELECT studentno AS 学号,studentname AS 姓名 FROM student;
SELECT studentno AS 学号,studentname AS 姓名 FROM student AS s;
SELECT CONCAT(‘姓名:’,studentname) AS 新姓名 FROM student; 123456789 DISTINCT关键字的使用 作用 : 去掉SELECT查询返回的记录结果中重复的记录(返回所有列的值都相同),只返回一条
SELECT * FROM result; # 查看考试成绩 SELECT studentno FROM result; # 查看哪些同学参加了考试 SELECT DISTINCT studentno FROM result;
12345 SELECT基本语法 #1.[ALL | DISTINCT] 全部/去重复 【+】 #2.选择的字段可以是表,可以是列,通过as取别名 【+】 #3.从哪个表选择 通过as 取别名 #4.连接查询(左连接,右连接,内连接)【+】 #5.where 条件子句【+】 #6.GROUP BY 通过什么列分组,返回每个列的数量 #7.HAVING 次条件子句 #8 ORDER BY 通过什么列进行排序,升序ASC 降序DESC #9.Limit startRows,PagesRows 【+】 SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,…]]} FROM table_name [as table_alias] [left | right | inner join table_name2] #联合查询 [WHERE …] #指定结果需满足的条件 [GROUP BY …] #指定结果按照哪几个字段来分组 [HAVING] #过滤分组的记录必须满足的次要条件 [ORDER BY …] #指定查询记录按一个或多个条件排序 [LIMIT {[offset,]row_count | row_countOFFSET offset}]; # 指定查询的记录从哪条至哪条 12345678910111213141516171819 where条件语句
用于检索数据表中 符合条件 的记录 搜索条件可由一个或多个逻辑表达式组成 , 结果一般为真或假. 用于模糊查询 逻辑操作符
操作符名称 语法 描述
AND 或 && a and b 或 a && b 逻辑与,同时为真结果才为真
OR 或 || a OR b 或 a||b 逻辑或,只要一个为真,则结果为真
NOT或! NOT a 或 !a 逻辑非,若操作数为假,结果则为真
比较操作符
操作符名称 语法 描述
IS NULL a IS NULL 若操作符为NULL,则结果为真
IS NOT NULL a IS NOT NULL 若操作符不为NULL,则结果为真
BETWEEN a BETWEEN b AND c 若a范围在b与c之间则结果为真
LIKE a LIKE b SQL模式匹配,若a匹配b,则结果为真
IN a IN (a1,a2,a3,…,) 若a等于a1,a2…中的某一个,则结果为真
以上面的查询小节的sql语句为例子,where的运用示例l如下:
SELECT Studentno,StudentResult FROM result;
SELECT Studentno,StudentResult FROM result WHERE StudentResult>=95 AND StudentResult<=100;
SELECT Studentno,StudentResult FROM result WHERE StudentResult>=95 && StudentResult<=100;
SELECT Studentno,StudentResult FROM result WHERE StudentResult BETWEEN 95 AND 100;
SELECT studentno,studentresult FROM result WHERE studentno!=1000;
SELECT studentno,studentresult FROM result WHERE NOT studentno=1000; 1234567891011121314151617181920212223 注意:
数值数据类型的记录之间才能进行算术运算 相同数据类型的数据之间才能进行比较