mysql20170410练习代码+笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql20170410练习代码+笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含11219字,纯文字阅读大概需要17分钟。
内容图文
studentResult,studentNO FROM result WHERE result.`subjectNo`=(SELECT subjectNo FROM `subject`) SELECT studentResult FROM result WHERE result.subjectNo = (SELECT subjectNo FROM SUBJECT WHERE subjectName=‘java‘) WHERE NOT EXISTS(SELECT studentResult FROM result<60) AND (SELECT (AVG(studentResult)+5) FROM result) SELECT studentResult FROM result WHERE result.subjectNo = (SELECT subjectNo FROM SUBJECT WHERE subjectName=‘java‘)>=60 SELECT subjectNo FROM `subject` WHERE subjectName = ‘s1‘ SELECT subjectNo FROM `subject` WHERE subjectName = ‘s2‘ WHERE EXISTS(SELECT subjectNo FROM `subject` WHERE subjectName = ‘s1‘ ) AND SELECT studentNo 学号,subjectNo 科目编号,studentResult 学员成绩,examDate 考试时间 FROM result WHERE subjectNO =(SELECT subjectNo FROM `subject` WHERE subjectName = ‘s2‘ ) SELECT studentNo 学号, studentResult 分数 FROM result WHERE EXISTS () AND subjectNo= SELECT studentName 学生姓名, gradeId CREATE TABLE IF NOT EXISTS grade( GradeID INT(11) NOT NULL, GradeName VARCHAR(50) DEFAULT NULL, PRIMARY KEY (‘GradeID‘) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=‘年级表‘ CREATE TABLE CREATE TABLE `grade` ( `GradeID` INT(11) NOT NULL, `GradeName` VARCHAR(50) DEFAULT NULL, PRIMARY KEY (`GradeID`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=‘年级表‘ INSERT INTO grade VALUES (‘1‘,‘一年级‘),(‘2‘,‘二年级‘),(‘3‘,‘三年级‘),(‘4‘,‘四年级‘) SELECT studentName 学生姓名 FROM student SELECT GradeName 年级名称 FROM grade WHERE GradeId IN (SELECT gradeId FROM student) SELECT subjectName 课程名称 FROM `subject` WHERE gradeID IN (SELECT gradeId FROM student) SELECT examDate 考试日期 FROM result SELECT studentResult 考试成绩 FROM result WHERE examDate= (SELECT MAX(examDate) FROM result) SELECT gradeId 年级编号,sex 性别,COUNT(sex) 个数 FROM student GROUP BY 年级编号,sex CREATE DATABASE IF NOT EXISTS t11 USE t11 CREATE TABLE IF NOT EXISTS sys_user ( uid INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT ‘客户编号‘, uName VARCHAR(50) NOT NULL COMMENT ‘客户姓名‘, uPassWord VARCHAR(50) COMMENT ‘客户密码‘ )COMMENT=‘客户信息表‘ CREATE TABLE IF NOT EXISTS hos_district( did INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT ‘区县编号‘, dName VARCHAR(50) NOT NULL COMMENT ‘区县名称‘ )COMMENT=‘区县信息表‘ CREATE TABLE IF NOT EXISTS hos_street( sid INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT ‘街道编号‘, sName VARCHAR(50) NOT NULL COMMENT ‘街道名称‘, sDid INT(20) NOT NULL COMMENT ‘区县编号‘, FOREIGN KEY(sDid) REFERENCES hos_district(did) )COMMENT=‘街道信息表‘ CREATE TABLE IF NOT EXISTS hos_type( hTid INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT ‘房屋类型编号‘, htName VARCHAR(50) NOT NULL COMMENT ‘房屋类型名称‘ )COMMENT=‘房屋类型表‘ CREATE TABLE IF NOT EXISTS hos_house( hMid INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT ‘出租房屋编号‘, uid INT(20) NOT NULL COMMENT ‘客户编号‘, sid INT(20) NOT NULL COMMENT ‘街道编号‘, hTid INT(20) NOT NULL COMMENT ‘房屋类型编号‘, price DECIMAL(5,2) DEFAULT 0 NOT NULL COMMENT ‘每月租金‘, topic VARCHAR(50) NOT NULL COMMENT ‘标题‘, contents VARCHAR(50) NOT NULL COMMENT ‘描述‘, FOREIGN KEY(uid) REFERENCES sys_user(uid), FOREIGN KEY(sid) REFERENCES hos_street(sid), FOREIGN KEY(hTid) REFERENCES hos_type(hTid) )COMMENT=‘出租房屋信息表‘ INSERT INTO hos_district VALUES (‘2‘,‘万泉庄‘),(‘3‘,‘中关村‘),(‘4‘,‘东单‘),(‘5‘,‘西单‘),(‘6‘,‘苏州街‘),(‘7‘,‘西四‘) UPDATE hos_district SET dName=‘东城区‘ WHERE did =1 UPDATE hos_district SET dName=‘海淀区‘ WHERE did =2 UPDATE hos_district SET dName=‘西城区‘ WHERE did=3 UPDATE hos_district SET dName=‘朝阳区‘ WHERE did=4 DELETE FROM hos_district WHERE did=5 DELETE FROM hos_district WHERE did=6 DELETE FROM hos_district WHERE did=7 INSERT INTO hos_street VALUES(‘1‘,‘东四‘,‘1‘),(‘2‘,‘万泉庄‘,‘2‘),(‘3‘,‘中关村‘,‘2‘),(‘4‘,‘东单‘,‘1‘),(‘5‘,‘西单‘,‘3‘),(‘6‘,‘苏州街‘,‘2‘),(‘7‘,‘西四‘,‘3‘) INSERT INTO hos_type VALUES(‘1‘,‘一室一厅‘),(‘2‘,‘一室一卫‘),(‘3‘,‘两室一厅‘),(‘4‘,‘两室一卫‘) INSERT INTO sys_user VALUES(‘1‘,‘张建‘,‘1234‘),(‘2‘,‘张冬雪‘,‘1234‘),(‘3‘,‘张三‘,‘1234‘),(‘4‘,‘王鑫‘,‘1234‘),(‘5‘,‘李剑‘,‘1234‘),(‘6‘,‘蒋以然‘,‘1234‘),(‘7‘,‘李四‘,‘1234‘) INSERT INTO hos_house VALUES(‘1‘,‘1‘,‘3‘,‘2‘,‘2600.00‘,‘中关村‘,‘中关村一条街‘),(‘2‘,‘2‘,‘2‘,‘2‘,‘1500.00‘,‘万泉庄附近‘,‘万泉庄附近一条街‘),(‘3‘,‘2‘,‘2‘,‘2‘,‘2700.00‘,‘东单‘,‘东单很多美食‘) ALTER TABLE hos_house SET price -- 1 查询张三发布的所有出租房屋信息,并显示房屋分布的街道和区县 -- 提示:结果数据来源于出租房屋信息表、客户信息表、区县信息表、街道信息表 -- 提示:使用连接查询和子查询两种方式关联夺标数据实现 SELECT dName 区县, sName 街道, htName 户型, price 价格, topic 标题, contents 描述 -- 2 根据户型和房屋所在区县和街道,为至少有两个街道有出租房屋的区县 -- 制作出房屋清单 -- 提示:显示用Having子句筛选出街道数量大于1的区县 -- 3 按季度统计出本年各区县街道各种户型房屋出租数量 -- 输出2016年从1月1日起至今的全部出租房屋数量、 -- 各区县出租房屋数量及各街道、户型出租房屋数量 练习代码 mysql练习代码
第1次课 -- 01.启动mysql服务 使用管理员身份启动cmd net start mysql -- 02.关闭服务 net stop mysql -- 03.连接mysql数据库 如果是本机 可以省略 -h ip地址 -p和密码不能有空格 mysql -h ip地址 -u用户名 -p密码 -- 04.退出数据库 exit -- 05.查询当前所有的数据库 show databases; 系统默认的四个数据库 information_schema:存放的是一些数据库对象信息,包含:用户表信息,字段信息,字符集信息等! performance_schema:存放的是数据库的性能参数信息! mysql:存放的系统用户权限信息! test:数据库管理系统默认创建的测试数据库!任何用户都可以使用! -- 06.sql(结构化查询语言) 01.DDL(数据定义语言) create drop alter 02.DQL(数据查询语言) select 03.DML(数据操作) insert delete update 04.DCL(数据控制语言) commit rollback grant revoke -- 07.逻辑运算符 and or not -- 08.创建数据库 CREATE DATABASE t12; SHOW DATABASES; -- 09.切换数据库 USE t12; -- 10.删除数据库 DROP DATABASE t12; -- 11.创建表 反引号` 是用来区分mysql中的关键字 -- ZEROFILL:不足位数使用0代替!超过位数,实际显示! CREATE TABLE `test_01`( tid INT(4) ZEROFILL ); -- 新增数据 INSERT INTO test_01(tid) VALUES(20); INSERT INTO test_01 VALUES(2000); INSERT INTO test_01 VALUES(20000); -- 12.默认int是有符号的 可以取负数 CREATE TABLE `test_02`( tid INT(4) ); -- 同时插入多条记录 负数可以插入 INSERT INTO test_02 VALUES(20),(1234),(-123456) -- UNSIGNED 无符号的 只能是整数 包含0 CREATE TABLE `test_03`( tid INT(4) UNSIGNED ); -- 同时插入多条记录 负数不可以插入 INSERT INTO test_03 VALUES(20),(1234),(-123456) -- 删除测试的三个表 DROP TABLE test_01; -- 13. 字符串类型 -- 01.char 固定长度的字符串 CREATE TABLE test_01( NAME CHAR(20) ); INSERT INTO test_01 VALUES(‘哈哈‘) -- 最后一个 啊 会被自动截断! 因为字符串超出了规定长度 INSERT INTO test_01 VALUES(‘哈哈啊‘) -- 02.varchar 可变长度的字符串 CREATE TABLE test_02( NAME VARCHAR(2) ); -- 最后一个 啊 会被自动截断! 因为字符串超出了规定长度 INSERT INTO test_02 VALUES(‘哈哈啊‘) -- 看不出区别 -- char(20)默认就已经开辟了20个空间 -- varchar(20)开辟了实际使用的空间 -- 14.日期格式 -- DATE : YYYY-MM-DD -- DATETIME: YYYY-MM-DD HH:MM:SS -- TIMESTAMP: YYYY-MM-DD HH:MM:SS 1970年1月1日开始的 !首选! -- TIME : HH:MM:SS -- YEAR : YYYY -- 15.创建表 -- creat table [if not exists] 表名( -- 字段1 数据类型 [字段属性][约束][索引][注释], -- 字段2 数据类型 [字段属性][约束][索引][注释] -- )[表类型][表字符集][注释]; -- 16.字段的约束和属性 -- 01.非空约束 not null 字段不允许为空 -- 02.默认约束 default 字段的默认值 -- 03.唯一约束 unique key(字段名称) uk -- 设置字段是唯一的不允许重复,可以为空,但是只能有一个空值 -- 04.主键约束 primary key(字段名称) pk -- 设置表中的主键,唯一标识该行! -- 05.外键约束 foreign key(字段名称) fk -- 建立在从表中,用于关联两个表之间的关系 -- 需要指定引用了主表中的哪个字段 -- 06.自动增长 auto_increment -- 设置字段自动增长,默认从1开始!通常设置在主键上! -- 07.注释 COMMENT 给字段增加解释 CREATE TABLE IF NOT EXISTS student( sid INT(4) ZEROFILL PRIMARY KEY AUTO_INCREMENT COMMENT ‘学生编号‘, sname VARCHAR(20) NOT NULL COMMENT ‘学生姓名‘, sage INT(3) NOT NULL DEFAULT 20 COMMENT ‘学生年龄‘ ); -- 新增数据 INSERT INTO student(sname,sage) VALUES(‘小黑‘,DEFAULT); INSERT INTO student(sid,sname,sage) VALUES(2,‘小黑2‘,DEFAULT); -- 如果指定了主键的值,就是指定的! 下次的自增冲动指定的值开始! INSERT INTO student(sid,sname,sage) VALUES(789,‘小黑3‘,DEFAULT); -- 查询刚刚插入数据的主键 INSERT INTO student(sname,sage) VALUES(‘小黑4‘,DEFAULT); SELECT @@identity; 第2次课 -- 切换到指定的数据库 USE t12 -- 创建Student表 CREATE TABLE IF NOT EXISTS student( studentNo INT(4) PRIMARY KEY COMMENT ‘学号‘, loginPwd VARCHAR(20) NOT NULL COMMENT ‘密码‘, studentName VARCHAR(50) NOT NULL COMMENT ‘姓名‘, sex CHAR(2) NOT NULL DEFAULT ‘男‘ COMMENT ‘性别‘, gradeID INT(4) UNSIGNED COMMENT ‘年级编号‘, phone VARCHAR(50) COMMENT ‘手机号码‘, address VARCHAR(255) DEFAULT ‘地址不详‘ COMMENT ‘地址‘, bornDate DATETIME COMMENT ‘出生日期‘, email VARCHAR(50) COMMENT ‘邮箱‘, identityCard VARCHAR(18) UNIQUE KEY COMMENT ‘身份证号‘ )COMMENT=‘学生表‘; 两种方式备份和导入数据 01.使用dbms 02.cmd命令行工具 前提 必须配置了mysql环境变量 备份: mysqldump -u用户名 -p 数据库名称 >路径 备份指定的表:mysqldump -u用户名 -p 数据库名称 表名1 表名2 >路径 恢复: mysql -u用户名 -p 数据库名称< 路径 --必须存在数据库 -- 创建年级表 CREATE TABLE IF NOT EXISTS grade( gradeId INT(4) PRIMARY KEY COMMENT ‘年级编号‘, gradeName VARCHAR(20) NOT NULL COMMENT ‘年级名称‘ )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=‘年级表‘; -- 查询本数据库中下所有的表 SHOW TABLES; -- 查看表的结构 DESC student; -- 删除表 DROP TABLE IF EXISTS 表名 -- 修改表名 alter table 旧表名 rename [to] 新表名 ALTER TABLE student RENAME [TO] stu; -- 添加字段 -- alter table 表名 add 字段名称 属性 ALTER TABLE student ADD age INT(3) NOT NULL COMMENT ‘年龄‘; -- 修改字段 alter table 表名 change 旧字段 新字段 属性 ALTER TABLE student CHANGE age ages INT(4) NOT NULL; -- 删除字段 alter table 表名 drop 字段名称 ALTER TABLE student DROP ages; -- mysql系统帮助文档 help 查询内容(命令); -- 添加主键 ALTER TABLE 表名 ADD CONSTRAINT pk_studentNo主键名称 PRIMARY KEY 表名(主键字段) -- 创建外键约束 必须在从表中创建 ALTER TABLE 从表名称 ADD CONSTRAINT fk_student_grade外键约束名称 FOREIGN KEY(从表的外键字段) REFERENCES 主表名称(主键) -- 给student表中增加外键 并且设置 删除是为 cascade -- 新增grade表中3条信息 INSERT INTO grade VALUES(1,‘1年级‘),(2,‘2年级‘),(3,‘3年级‘); -- 查询表中所有的记录 SELECT * FROM grade; -- 删除年级编号为1的记录 的时候,对应的所有学生 也被删除了 DELETE FROM grade WHERE gradeid=1; 并且设置 删除是为 set null! -- 查询所有的存储引擎 SHOW ENGINES -- 查看当前默认的存储引擎 SHOW VARIABLES LIKE ‘storage_engine%‘; -- 修改存储引擎 -- 修改my.ini配置文件 default- storage-engine=InnoDB -- 重启服务 --修改指定表中的存储引擎 alter table 表名 engine=引擎 -- MyISAM类型的标文件 01.*.frm 表结构的定义文件 02.*.MYD 数据文件 03.*.MYI 索引文件 <span 本文系统来源:http://www.cnblogs.com/xtdxs/p/6690549.html
内容总结
以上是互联网集市为您收集整理的mysql20170410练习代码+笔记全部内容,希望文章能够帮你解决mysql20170410练习代码+笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。