基本上的数据库操作。
update user set password=password('123456')where user='root'; 更改密码flush privileges; 更新数据库查询show databases; 表明全部数据库查询use dbname; 开启某一数据库查询show tables; 表明数据库查询mysql中全部的表describe user; 表明表mysql数据表中user表的列信息内容create database name; 建立数据库use databasename; 挑选数据库查询exit; 撤出Mysql? 指令关键字 : 求助-- 表明注解
建立数据库:
CREATE DATABASE 数据库查询名 //建立数据库
删除数据库:
drop database [if exists] 数据库查询名;
查看数据库:
show databases;
应用数据库查询:
use 数据库查询名;
操作台的实际操作。
伪代码:
create table [if not exists] `表名`( '列名1' 列种类 [特性][数据库索引][注解], '列名2' 列种类 [特性][数据库索引][注解], '列名n' 列种类 [特性][数据库索引][注解])[表种类][表字段名][注解]
实例:
-- 建立外键约束的方法一 : 建立子表与此同时建立外键约束-- 班级表 (id\班级名字)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` ( `Sno` INT(4) NOT NULL COMMENT '学籍号', `Sname` VARCHAR(20) NOT NULL DEFAULT '密名' COMMENT '名字', `Ssex` 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
外键约束:
PRIMARY KEY (`列名`)
外键约束:
KEY FK_ `列名` (`列名`)
外键约束:向外键约束字段名加上管束,以实行引入另一个表的同样列名。
CONSTRAINT `FK_列名` FOREIGN KEY (`列名`) REFERENCES `此外一张表名` (`此外一张表列名`)
Set not 空:
NOT NULL
自增:
AUTO_INCREMENT
备注名称:
COMMENT `备注名称信息内容`
初始值:
DEFAULT '初始值'
设定数据库索引:
ENGINE=InnoD
设定默认设置字符集:
DEFAULT CHARSET=utf8
改动表名:
ALTER TABLE 旧表名 RENAME AS 新表名
加上字段名:
ALTER TABLE 表名 ADD列名 列特性[特性]
改动字段名:
ALTER TABLE 表名 MODIFY 列名 列种类[特性]ALTER TABLE 表名 CHANGE 旧列名 新列名 列特性[特性]
删除字段:
ALTER TABLE 表名 DROP 列名
删掉报表英语的语法:
DROP TABLE [IF EXISTS] 表名
加上数据信息
插进指令
英语的语法:
INSERT INTO [(,,,...)] VALUES('值1','值2','值3')
例1:
INSERTINTO Student(Sno,Sname,Ssex,Sdept,Sage)VALUES(1001,'张三','男','电子信息工程',18)
例2:
INSERTINTO Student(Sno,Sname,Ssex,Sdept,Sage)VALUES(1001,'张三','男','电子信息工程',18),(1002,'李四','男','电子信息工程',19)
删掉的数据信息
删掉指令
TRUNCATE指令
作用:用以彻底消除空表数据信息,但表结构,数据库索引,管束等。维持不会改变;
英语的语法:
DELETEFROM [WHERE ];
实例:
DELETEFROM StudentWHERE Sno = 10001;
升级数据信息
升级指令
英语的语法:
UPDATE SET = [, =,]...[WHERE ];
例1:
UPDATE StudentSET Sdept = `电子计算机`,Sage = 23WHERE Sno = 1001
实例2:好几个标准。
UPDATE StudentSET Sdept = `电子计算机`,Sage = 23WHERE Sname = `张三` and Ssex = `男`
在其中if语句:
操作符含意使用方法=相当于Sage = 18 或 !=并不等于Sage != 0>超过Sage > 1=大于或等于Sage >= 10 AND Sage 0 OR Sage < 101
查看数据信息
挑选指令
简易英语的语法:
select * from Student --查看全部学生电子档案
特定字段名查看:
select Sno,Sname from Student --查看学员表的学籍号和名字
别称:您能够给...字段名;您还可以给一个别称。
selcet Sno as 学籍号,Sname as 名称 from Student
涵数Concat(,):联接字符串数组。
select CONCAT('名字:',Sname) from Student --查看結果 名字:张三
与众不同的反复数据信息清除:反复数据信息清除。
-- # 查询什么同学们参与了考試(学籍号) 除去反复项SELECT * FROM result; -- 查询考试分数SELECT studentno FROM result; -- 查询什么同学们参与了考試SELECT DISTINCT studentno FROM result; -- 掌握:DISTINCT 除去反复项 , (默认设置是ALL)
Whereif语句
运算符名字英语的语法叙述AND 或 &&a AND b 或 a && b逻辑,与此同时为真結果才为真ORa OR b逻辑或,只需一个为真,则結果为真NOT 或 !NOT a 或 !a逻辑非,若操作数为假,则結果为真!
实例:
-- 查看考试分数在95-100中间的SELECT Studentno,StudentResultFROM resultWHERE StudentResult>=95 AND StudentResult
模糊搜索:较为操作符。
运算符名字运算符名字叙述IS NULLa IS NULL若运算符为NULL,则結果为真IS NOT NULLa IS NOT NULL若运算符不以NULL,则結果为真BETWEENa BETWEEN b AND c若 a 范畴在 b 与 c 中间,则結果为真LIKEa LIKE bSQL 匹配算法,若a配对b,则結果为真INa IN (a1,a2,a3,……)) 若 a 相当于 a1,a2….. 中的某一个,则結果为真
实例:
LIKE的使用方法。
-- 查看姓王的同学们的学籍号及名字-- like融合应用的使用通配符 : % (意味着0到随意字符) _ (一个字符)SELECT Sno,Sname FROM StudentWHERE Sname LIKE '张%';-- 查看姓王的同学们,后边仅有一个字的SELECT Sno,Sname FROM StudentWHERE studentname LIKE '张_';-- 查看姓王的同学们,后边仅有两字的SELECT Sno,Sname FROM StudentWHERE Sname LIKE '张._';
应用键入。
-- 查看学籍号为1000,1001,1002的学员名字SELECT Sno,Sname FROM StudentWHERE Sno IN (1000,1001,1002);-- 查看详细地址在广州市,深圳市的学员SELECT Sno,Sname,address FROM StudentWHERE address IN ('广州市','深圳市');
应用空值。
-- 查看出世日期沒有录入的同学们SELECT Sname FROM StudentWHERE BornDate IS NULL;-- 查看出世日期填好的同学们SELECT Sname FROM StudentWHERE BornDate IS NOT NULL;-- 查看沒有写住址的同学们(空字符串并不等于null)SELECT Sname FROM StudentWHERE Address='' OR Address IS NULL;
多表查询
JOIN联接:
运算符名字叙述INNER JOIN2个表中间相交LEFT JOIN2个表中间相交,并往左边表拼凑RIGHT JOIN2个表中间相交,并往右边表拼凑
2个表格中結果集的內部连接查看相交2个表格中結果集的外界连接查看或且左连接以左表为标准,右表一一配对。如果不配对,则回到左表中的纪录。右表用空值添充。右连接右连接以右表为标准,而左表一一配对。如果不配对,它将回到右表中的纪录。
-查看参与过考試的学生电子档案(学籍号,别名,课程号,成绩)-学员表(学籍号,别名)和成绩单(别名,课程号,成绩)。
SELECT s.Sno,Sname,subjectno,StudentResultFROM Student sINNER JOIN result rON r.Sno = s.Sno-- 右联接(也可完成)SELECT s.Sno,Sname,subjectno,StudentResultFROM student sRIGHT JOIN result rON r.Sno = s.Sno-- 等值连接SELECT s.Sno,Sname,subjectno,StudentResultFROM Student s , result rWHERE r.Sno = s.Sno-- 左连接 (查看了全部同学们,不考試的也会查出)SELECT s.Sno,Sname,subjectno,StudentResultFROM Student sLEFT JOIN result rON r.Sno = s.Sno-- 查一下弃考的同学们(左连接应用领域)SELECT s.Sno,Sname,subjectno,StudentResultFROM Student sLEFT JOIN result rON r.Sno = s.SnoWHERE StudentResult IS NULL-- 思考题:查看参与了考試的同学们信息内容(学籍号,学员名字,学科名,成绩)SELECT s.Sno,Sname,Sname,StudentResultFROM Student sINNER JOIN result rON r.Sno = s.SnoINNER JOIN `subject` subON sub.Sno = r.Sno
自连接查询
-- 建立一个表CREATE TABLE `category` (`categoryid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主题风格id',`pid` INT(10) NOT NULL COMMENT '父id',`categoryName` VARCHAR(50) NOT NULL COMMENT '主题风格名称',PRIMARY KEY (`categoryid`)) ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8-- 插进数据信息INSERT INTO `category` (`categoryid`, `pid`, `categoryName`)VALUES('2','1','信息科技'),('3','1','开发软件'),('4','3','数据库查询'),('5','1','艺术设计'),('6','3','web开发'),('7','5','ps技术'),('8','2','办公室信息内容');
实例实际操作:
-- 撰写SQL句子,将频道的亲子关系展现出去 (父栏目名称,子栏目名称)-- 核心内容:把一张表当做二张一模一样的表,随后将这2张表连接查询(自联接)SELECT a.categoryName AS '父频道',b.categoryName AS '子频道'FROM category AS a,category AS bWHERE a.`categoryid`=b.`pid`-- 思考题:查看参与了考試的同学们信息内容(学籍号,学员名字,学科名,成绩)SELECT s.studentno,studentname,subjectname,StudentResultFROM student sINNER JOIN result rON r.studentno = s.studentnoINNER JOIN `subject` subON sub.subjectno = r.subjectno-- 查看学生及隶属的班级(学籍号,学员名字,班级名)SELECT studentno AS 学籍号,studentname AS 学员名字,gradename AS 班级名字FROM student sINNER JOIN grade gON s.`GradeId` = g.`GradeID`-- 查看学科及隶属的班级(学科名字,班级名字)SELECT subjectname AS 学科名字,gradename AS 班级名字FROM SUBJECT subINNER JOIN grade gON sub.gradeid = g.gradeid-- 查看 数据库查询构造-1 的全部考試結果(学籍号 学员名字 学科名字 考试成绩)SELECT s.studentno,studentname,subjectname,StudentResultFROM student sINNER JOIN result rON r.studentno = s.studentnoINNER JOIN `subject` subON r.subjectno = sub.subjectnoWHERE subjectname='数据库查询构造-1'
子查询
什么叫子查询?在查看句子的WHERE标准子句中,嵌入了另一个查看句子。嵌入查看能够由好几个子查询构成,求得方式从内到外。子查询回到的結果一般全是结合,因此提议应用IN关键词。
实际操作实例:
-- 查看 数据库查询构造-1 的全部考試結果(学籍号,学科序号,考试成绩),而且考试成绩降序排序-- 方式一:应用连接查询SELECT studentno,r.subjectno,StudentResultFROM result rINNER JOIN `subject` subON r.`SubjectNo`=sub.`SubjectNo`WHERE subjectname = '数据库查询构造-1'ORDER BY studentresult DESC;-- 方式二:应用子查询(实行次序:由里及外)SELECT studentno,subjectno,StudentResultFROM resultWHERE subjectno=( SELECT subjectno FROM `subject` WHERE subjectname = '数据库查询构造-1')ORDER BY studentresult DESC;-- 查看课程内容为 高数-2 且成绩不小于80分的同学的学籍号和名字-- 方式一:应用连接查询SELECT s.studentno,studentnameFROM student sINNER JOIN result rON s.`StudentNo` = r.`StudentNo`INNER JOIN `subject` subON sub.`SubjectNo` = r.`SubjectNo`WHERE subjectname = '高数-2' AND StudentResult>=80-- 方式二:应用连接查询 子查询-- 成绩不小于80分的同学的学籍号和名字SELECT r.studentno,studentname FROM student sINNER JOIN result r ON s.`StudentNo`=r.`StudentNo`WHERE StudentResult>=80-- 方式三:应用子查询-- 逐层写简易sql语句,随后将其嵌入起來SELECT studentno,studentname FROM student WHERE studentno IN( SELECT studentno FROM result WHERE StudentResult>=80 AND subjectno=( SELECT subjectno FROM `subject` WHERE subjectname = '高数-2' ))
公共性涵数
数据信息作用:
SELECT ABS(-8); /*平方根*/SELECT CEILING(9.4); /*向上取整*/SELECT FLOOR(9.4); /*向下取整*/SELECT RAND(); /*随机数字,回到一个0-1左右的随机数字*/SELECT SIGN(0); /*符号函数: 负值回到-1,正数回到1,0回到0*/
字符串函数:
SELECT CHAR_LENGTH('我还在学Mysql'); /*回到字符串包含的字符数*/SELECT CONCAT('我','爱','程序流程'); /*合拼字符串数组,主要参数能够有好几个*/SELECT INSERT('我喜欢程序编写helloworld',1,2,'非常喜爱'); /*更换字符串数组,从某一部位逐渐更换某一长短*/SELECT LOWER('Study'); /*小写字母*/SELECT UPPER('Study'); /*英文大写*/SELECT LEFT('hello,world',5); /*从左侧提取*/SELECT RIGHT('hello,world',5); /*从右侧提取*/SELECT REPLACE('坚持不懈就能取得成功','坚持不懈','勤奋'); /*更换字符串数组*/SELECT SUBSTR('坚持不懈就能取得成功',4,6); /*截取字符串,逐渐和长短*/SELECT REVERSE('坚持不懈就能取得成功'); /*翻转-- 查看姓周的同学们,改为邹SELECT REPLACE(studentname,'周','邹') AS 新名称FROM student WHERE studentname LIKE '周%';
日期和時间作用:
SELECT CURRENT_DATE(); /*获得当今日期*/SELECT CURDATE(); /*获得当今日期*/SELECT NOW(); /*获得当今日期和時间*/SELECT LOCALTIME(); /*获得当今日期和時间*/SELECT SYSDATE(); /*获得当今日期和時间*/-- 获得年月日,分秒SELECT YEAR(NOW());SELECT MONTH(NOW());SELECT DAY(NOW());SELECT HOUR(NOW());SELECT MINUTE(NOW());SELECT SECOND(NOW());
聚合函数
涵数名字叙述COUNT()回到达到Select标准的纪录总数数,如 select count(*) 【不建议应用 *,高效率低】SUM()回到数据字段名或关系式列作统计分析,回到一列的总数。AVG()一般为数值字段或表述列作统计分析,回到一列的均值MAX()能够为数值字段,标识符字段名或关系式列作统计分析,回到较大的值。MIN()能够为数值字段,标识符字段名或关系式列作统计分析,回到最少的值。
实例:
-- 查看不一样课程内容的均分,满分,最少分-- 前提条件:依据不一样的课程内容开展排序SELECT subjectname,AVG(studentresult) AS 均分,MAX(StudentResult) AS 满分,MIN(StudentResult) AS 最少分FROM result AS rINNER JOIN `subject` AS sON r.subjectno = s.subjectnoGROUP BY r.subjectnoHAVING 均分>80;
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。