澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

01mysql数据库下载安装卸载及基本操作,mysql入门

2019-06-16 作者:数据库网络   |   浏览(131)

MySQL5.5.40破解版地址(永世有效):链接: 密码:qjjy

MySQL入门,mysql入门卓绝

1. mysql是一种常用的数据库管理软件,优点有:无偿,开源,跨平台,本文只是介绍一下MySQL的简便操作

2.数据库的骨干组织

  能够把数据库驾驭成八个文书夹,数据库中的数据存放的单位是表,能够领略为excel表格,表格的表头称为字段,表中的每一条数据称为记录

  澳门新萄京官方网站 1

3.MySQL安装

  1.从官方网站下载 

  2.下载msi格式的文件,双击安装就可以

  3.配备情状变量

  windows意况设置比linux轻松的多,所以安装进程就不赘述

  4.安装好之后,展开命令提醒行,输入mysql -uroot -pkey,(key为设置进程中安装的 密码),然后回车出现  mysql > ,就象征安装成功了

4.sql语句标准

  sql是结构化查询语言的缩写。我们经过sql语句来操作数据库,下边是sql语句的有的书写标准

  1.sql语句不区分轻重缓急写,不过建议sql命令大写,自定义的库名表名之类小写

  2.sql语句帮助分行,以分行结尾,关键词不可能跨行

  3.用空格和缩进来增长语句可读性

  4.单行注释:--

   多行注释:/*....*/

  5.中括号里的剧情表示 可有可无

5.数据库简单操作

  1.创设数据库  CREATE DATABASE database_name;

   能够在成立数据库的时候钦赐编码集  CREATE DATABASE database_name CHARACTER SET utf8;

  2.剔除数据库  DROP DATABASE database_name; 从删库到跑路

  3.翻看已开立的数据库  SHOW DATABASES;

  4.翻看数据库成立音信   SHOW CREATE DATABASE database_name;

  5.修改数据库字符集  ALTE卡宴 DATABASE database_name CHARACTER SET utf8;

  6.用到数据库  USE database_name;    进入数据库后不曾退闻明令,可是能够一而再用SHOW查看数据库并用USE切换成任何数据库

6.表的简约操作

  使用数据库后施行的操作

  1.创建表  CREATE TABLE table_name(字段名称 字段数据类型  [约束],

                        字段名称 字段数据类型  [约束],    

                      字段名称 字段数据类型  [约束]

                      );

  2.查看全部表  SHOW TABLES;

   查看表的详细音讯  DESC table_name;

   查看表的创造新闻  SHOW CREATE TABLE table_name;

  3.增加列  ALTER TABLE table_name ADD 列名 类型 [完整性约束规范] [first|after 字段名];

    增增添列用逗号隔断

  4.修改 

   修改一列类型   ALTELX570 TABLE table_name MODIFY 列名 类型  [完整性约束原则];

   修改列名    ALTELAND TABLE table_name CHANGE 列名 新名 类型 [自律原则];

   修改表名  RENAEM TABLE 表名 TO 新名;

   修改表的字符集  ALTECR-V TABLE table_name CHARACTER SET utf8;

  5.删除 

   删除一列  ALTE凯雷德 TABLE table_name DROP 列名;

   删除表   DROP TABLE table_name;

   删除主键的自增进  ALTEQashqai TABLE table_name CHANGE id id int(10)

7.封锁原则

  创设表的时候,字段前面要加约束条件。常用的羁绊原则有:

  1.非空  not null

  2.唯一性 unique

  3.主键  primary key  假使贰个字段设置了非空属性和唯一性约束,那么自动识别为主键

  4.自增  auto_increment  只有主键能够安装那些约束

   

8.sql数据类型

数值类型:  

 

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E 38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E 38) 0,(1.175 494 351 E-38,3.402 823 466 E 38) 单精度
浮点数值
DOUBLE 8 字节 (1.797 693 134 862 315 7 E 308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) 双精度
浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M 2否则为D 2 依赖于M和D的值 依赖于M和D的值 小数值

 

岁月等级次序:

 

类型 大小
(字节)
范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

  

字符串类型:

类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65 535字节 二进制形式的长文本数据
TEXT 0-65 535字节 长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LOGNGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据

9.表记录操作

  1.插入数据 insert

  INSERT [INTO] table_name (字段名称,,,) VALUES(值,,,),

                           (值,,,),

                            .......  

                           (值,,,);

  2.修改表记录

    UPDATE table_name SET 字段=值,字段=值....WHERE子句;

  3.删除表记录

    DELETE FROM table_name WHERE子句; 不加where子句的话会把全路表删除

    TRUNCATE TABLE table_name;  删除全部表

    delete和truncate的区别:

      1.语法分化

      2.delete背后能够加限制条件,选择删除某条记下,而truncate只好删掉整个表

      3.delete 足以回去删除的数量,可是truncate不能

      4.在剔除全部表的时候,delete的法则是一条一条的删减,而truncate 的规律是把全体表删掉,再新建三个一致字段的表

       所以,假诺表中有自增加的字段,delete删除之后,新的表是从上个地点上马自增的,不过truncate是从1伊始

10.表记下查询  select

其一是最根本,也是最常用的

  1.单表查询

SELECT [DISTINCT] *|field1,field,... from table_name where .... group by .... order by...[desc|asc]

     1.呈现表的全部音讯  SELECT * FROM table_name; 

        突显钦点列的新闻  SELECT 列,列.. FROM table_name;

        SELECT 前边能够跟 表明式 、distinct(表示去重)

     2.用WHERE子句实行过滤

       WHERE子句中能够使用:

        1.相比运算符  > < >= <= !=

        2.between .. and ..   在..和.. 之间

        3.in (a,b,c)         在a,b,c 那八个值中三个

        4.like  条件  eg: like "李%"  表示已“李”开头

                  like "李_"    表示以“李”开头,并且前面有二个字符,四个下划线代表贰个字符

        5.逻辑运算符 and or not

     3.order by  意味着以。。排序,排序的列能够是列名,也得以是设置的外号

        order语句前边能够跟多少个方式,asc表示升序(私下认可),desc代表降序

     4.group by 象征以..分组,分组后只会议及展览示种种字段的率先条记下,分组后的筛选用的重要性字是having ,功能和 where同样,与where相比较,having前面能够选用聚合函数

     5.聚合函数:

        1.avg() 求平均值

        2.count() 计算个数

        3.sum() 求和函数

        4.max(),min()  最大值最小值函数

     6.limit 关键字用来决定展现的条数,limit 1 意味着只显示第一行,limit 2,5 代表显示第2到5行

     7.采纳正则表达式

        

        

  2.多表查询

    1.外键

      假若两张表要开创联系,就必要动用到外键,供给思索三种关系:一对一,多对多,和一对多

      1.一对多: 这种模型中,有主表和子表的区分,比方叁个导师有四个学生,多个学生只可以有一个先生,这种情况老师正是主表,学生正是子表,我们要求在子表中创制关联字段(外键)

        扩张外键:[ADD CONSTRAINT name]01mysql数据库下载安装卸载及基本操作,mysql入门卓越。 FOREIGN KEY (字段名)REFERENCES table_name;

        删除却键:ALTELX570 TABLE table_name DROP FOREIGN KEY name;

              (那些name是扩张外键时给外键起的名字,假使未有设置,从表的创设格局中能够找到)

      2.多对多:需求正视第三张表,在第三张表中创设多少个外键

      3.一对一:这种实际正是外键加贰个unique,十分的少用

      4. 假使两张表创设了关系,就不可小看从表中删除记录了,必须消除关系后技巧删

    2.内连接

      大家在查询表记录的时候,能够同不日常候出示多张表的记录,类似

      select * from tableA,tableB 

      不过那样并不是大家想要的结果,当然大家能够在询问结果前边用where子句进行筛选,但更常用的是用内再三再四:

      select * from tableA inner join tableB on tableA.id = tableB.id

    3.外连接

      1.左外接连:在内连接的基础上增加左侧有左边未有的结果

          select * from tableA left join tableB on tableA.id = tableB.id

      2.右外接连:在内连接的根基上加码左边有左边未有的结果

       select * from tableA right join tableB on tableA.id = tableB.id

  

练习:

澳门新萄京官方网站 2

  1 -- 1.查询平均成绩大于八十分的同学的姓名和平均成绩
  2 -- SELECT sname,avg(num) from student INNER JOIN  score
  3 --                                 on student.sid = score.student_id
  4 --                                 GROUP BY student_id
  5 --                                 HAVING avg(num) >80
  6 
  7 -- 2、查询所有学生的学号,姓名,选课数,总成绩
  8 
  9 -- SELECT student.sid,sname,count(course_id),sum(num) from student
 10 --                     INNER JOIN score
 11 --                     on score.student_id = student.sid
 12 --                     GROUP BY student_id
 13 -- 3、查询没有报李平老师课的学生姓名
 14 
 15 -- SELECT sname from student WHERE sid not in (SELECT DISTINCT student_id from score WHERE course_id  in (SELECT cid from teacher
 16 --                                                                                     INNER JOIN course
 17 --                                                                                     on teacher.tid = course.teacher_id
 18 --                                                                                     WHERE tname like '李平%'))
 19 
 20 -- 4、查询物理课程比生物课程高的学生的学号
 21 -- SELECT * from
 22 --
 23 -- (SELECT * from    score WHERE course_id = (SELECT cid from course WHERE cname="物理")) as A
 24 --
 25 -- INNER JOIN
 26 --
 27 -- (SELECT * from    score WHERE course_id = (SELECT cid from course WHERE cname="生物")) as B
 28 --
 29 -- on A.student_id = B.student_id
 30 --
 31 -- WHERE A.num > B.num
 32 --
 33 -- 5、查询没有同时选修物理课程和体育课程的学生姓名
 34 
 35 -- SELECT sname from student where sid not in(SELECT student_id from score
 36 --                 WHERE course_id
 37 --                 in (select cid from course
 38 --                         WHERE cname
 39 --                         like "物理" or cname = "体育")
 40 --                 GROUP BY student_id having count(sid)=2)
 41 --
 42 
 43 -- 6、查询挂科超过两门(包括两门)的学生姓名和班级
 44 
 45 -- SELECT sname,caption from student
 46 --                                         INNER JOIN class
 47 --                                         on student.sid = class.cid
 48 --                                         where sid in
 49 --                                         (SELECT student_id from score
 50 --                                                     where num    <60 GROUP BY student_id
 51 --                                                             HAVING count(num) >=2)
 52 
 53 -- 7、查询选修了所有课程的学生姓名
 54 -- SELECT sname from student
 55 --                             WHERE sid in (SELECT student_id  from score
 56 --                                                                                             GROUP BY student_id
 57 --                                                                                                 HAVING count(course_id) = (SELECT count(cid) from course)
 58 -- )
 59 
 60 
 61 
 62 
 63 -- 8、查询不同课程但成绩相同的学号,课程号,成绩
 64 
 65 SELECT student_id,course_id,num from score WHERE student_id = (SELECT A.student_id from
 66 
 67 (SELECT *,COUNT(DISTINCT num) as C FROM score GROUP BY student_id)as A
 68 
 69 LEFT JOIN
 70 
 71 (SELECT *,count(num) as D FROM score GROUP BY student_id) as B
 72 
 73 on A.sid = B.sid
 74 
 75 where C!=D)
 76 
 77 -- 9、查询没学过“李平”老师课程的学生姓名以及选修的课程名称;
 78 
 79 SELECT a.sname,course.cname from course
 80                     RIGHT JOIN (SELECT * from student
 81                                 WHERE sid not in
 82                                             (select student_id
 83                                                     from score where course_id =3) )as A
 84                     on course.cid = A.class_id
 85 
 86 
 87 
 88 
 89 -- 10、查询所有选修了学号为1的同学选修过的一门或者多门课程的同学学号和姓名;
 90 
 91 --
 92 SELECT sid,sname
 93         from student
 94         WHERE sid in (SELECT DISTINCT student_id from score 
 95                                                                 WHERE course_id
 96                                                                 in (SELECT course_id
 97                                                                                 from score where student_id = 1))
 98 
 99 
100 
101 
102 -- 11、任课最多的老师中学生单科成绩最高的学生姓名
103 
104 SELECT sname from student
105         where sid in (SELECT DISTINCT student_id from score
106                                             WHERE course_id in (SELECT cid from course
107                                                     where teacher_id=(SELECT teacher_id from course
108                                                             GROUP BY teacher_id order by count(cid) desc limit 1))
109                                                                         and num=(SELECT max(num) from score WHERE course_id in
110                                                                                 (SELECT cid from course where teacher_id=(SELECT teacher_id
111                                                                                             from course GROUP BY teacher_id order by count(cid) desc limit 1)) ))-- SELECT * from score  GROUP BY course_id having

练习题

 

1. mysql是一种常用的数据库管理软件,优点有:无偿,开源,跨平台,本文只是介绍一下MySQL的简易操作 2.数据库的...

1.MySQL数据库

1. mysql是一种常用的数据库管理软件,优点有:免费,开源,跨平台,本文只是介绍一下MySQL的简短操作

1. mysql是一种常用的数据库管理软件,优点有:免费,开源,跨平台,本文只是介绍一下MySQL的简短操作

第2节 数据库的介绍

2.SQL语句

2.数据库的主题构造

2.数据库的中坚构造

MySQL:开源免费的数据库,Mini的数据库,已经被 Oracle 收购了。 MySQL6.x 版本也初叶收取费用。后来 Sun
商城收购了 MySQL,而 Sun 集团又被 Oracle 收购

率先节课

  可以把数据库明白成二个文本夹,数据库中的数据存放的单位是表,能够知道为excel表格,表格的表头称为字段,表中的每一条数据称为记录

  可以把数据库驾驭成二个文本夹,数据库中的数据存放的单位是表,能够精晓为excel表格,表格的表头称为字段,表中的每一条数据称为记录

2.1.2 什么是数据库
1) 存款和储蓄数据的仓库
2) 本质上是一个文件系统,照旧以文件的主意存在服务器的微型Computer上的。
3) 全体的关系型数据库都能够动用通用的 SQL 语句进行田管 DBMS DataBase Management System

###1(MySQL数据库)数据库概念.avi      5分

  澳门新萄京官方网站 3

  澳门新萄京官方网站 4

第3节 数据库的设置与卸载

###2(MySQL数据库)常见的数码库.avi      4分

3.MySQL安装

01mysql数据库下载安装卸载及基本操作,mysql入门卓越。3.MySQL安装

设置进度分成三个部分:
1) 文件解压和复制进程,私下认可的装置目录:澳门新萄京官方网站 5

###3(MySQL数据库)数据库和管理系统.avi      5分

  1.从官方网址下载 

  1.从官方网站下载 

2) 安装好之后必须对 MySQL 服务器举办配置
在 mysql 中管理员的名字: root

###4(MySQL数据库)数据表和Java中类的附和关系.avi      5分

  2.下载msi格式的文本,双击安装就能够

  2.下载msi格式的文本,双击安装就可以

3.1 数据库的安装

###5(MySQL数据库)数据表和Java中类的附和关系用户表譬如.avi    2分

  3.配备情况变量

  3.布局环境变量

  1. 开采下载的 mysql 安装文件双击解压缩,运转“mysql-5.5.40-win32.msi”

###6(MySQL数据库)MySQL数据库安装.avi      15分

  windows境遇设置比linux轻便的多,所以安装进程就不赘述

  windows情状设置比linux轻巧的多,所以安装进度就不赘述

澳门新萄京官方网站 6

###7(MySQL数据库)数据库在系统服务.avi      3分

  4.设置好之后,展开命令提醒行,输入mysql -uroot -pkey,(key为设置进度中装置的 密码),然后回车出现  mysql > ,就表示安装成功了

  4.装置好以往,张开命令提醒行,输入mysql -uroot -pkey,(key为设置进度中装置的 密码),然后回车现身  mysql > ,就表示安装成功了

 

###8(MySQL数据库)MySQL的登录.avi      4分

4.sql语句规范

4.sql语句标准

澳门新萄京官方网站 7

###9(MySQL数据库)SQLYog软件介绍.avi      4分

  sql是结构化查询语言的缩写。大家经过sql语句来操作数据库,上面是sql语句的一对书写标准

  sql是结构化查询语言的缩写。大家透过sql语句来操作数据库,下边是sql语句的部分挥毫标准

  1. 慎选安装类型, 有“Typical(暗许) ”、 “Complete(完全) ”、 “Custom(用户自定义) ”八个选择, 采用“Custom” ,
    按“next”键继续

其次节课

  1.sql语句不区分轻重缓急写,不过建议sql命令大写,自定义的库名表名之类小写

  1.sql语句不区分轻重缓急写,但是提出sql命令大写,自定义的库名表名之类小写

澳门新萄京官方网站 8

###10(MySQL数据库)SQL语句介绍和分类.avi      5分

  2.sql语句协理分行,以分集团结尾,关键词无法跨行

  2.sql语句辅助分行,以总部结尾,关键词不能够跨行

  1. 点选“Browse”,手动指定安装目录。

###11(MySQL数据库)数据表中的数目类型.avi      4分

  3.用空格和缩进来抓牢语句可读性

  3.用空格和缩进来增加语句可读性

澳门新萄京官方网站 9

###12(MySQL数据库)成立数据库操作.avi      6分

  4.单行注释:--

  4.单行注释:--

  1. 填上设置目录,笔者的是“d:Program Files (x86)MySQLMySQL Server 5.0”,按“OK”继续

###13(MySQL数据库)创制数量表格式.avi      8分

   多行注释:/*....*/

   多行注释:/*....*/

澳门新萄京官方网站 10

###14(MySQL数据库)约束.avi      2分

  5.中括号里的从头到尾的经过表示 可有可无

  5.中括号里的剧情表示 可有可无

  1. 认同一下以前的装置,假使有误,按“Back”重回重做。按“Install”初步设置。

###15(MySQL数据库)SQL代码的保存.avi    2分

5.数据水库蓄水体量易操作

5.数据库简单操作

澳门新萄京官方网站 11

###16(MySQL数据库)创制用户表.avi      3分

  1.创设数据库  CREATE DATABASE database_name;

  1.创造数据库  CREATE DATABASE database_name;

澳门新萄京官方网站 12

###17(MySQL数据库)主键约束.avi      6分

   能够在创建数据库的时候钦赐编码集  CREATE DATABASE database_name CHARACTER SET utf8;

   能够在开立数据库的时候指确定人员编制码集  CREATE DATABASE database_name CHARACTER SET utf8;

澳门新萄京官方网站 13

###18(MySQL数据库)常见表的操作.avi    2分

  2.剔除数据库  DROP DATABASE database_name; 从删库到跑路

  2.删减数据库  DROP DATABASE database_name; 从删库到跑路

澳门新萄京官方网站 14

###19(MySQL数据库)修改表结构.avi      10分

  3.翻看已创制的数据库  SHOW DATABASES;

  3.查看已创设的数据库  SHOW DATABASES;

澳门新萄京官方网站 15

其三节课

  4.翻看数据库成立信息   SHOW CREATE DATABASE database_name;

  4.查看数据库创立音信   SHOW CREATE DATABASE database_name;

  1. 正在安装中,请稍候,直到出现下边包车型地铁界面, 则产生 MYSQL 的安装

###20(MySQL数据库)数据表加多数据_1.avi      8分

  5.退换数据库字符集  ALTER DATABASE database_name CHARACTER SET utf8;

  5.修改数据库字符集  ALTE汉兰达 DATABASE database_name CHARACTER SET utf8;

澳门新萄京官方网站 16

###21(MySQL数据库)数据表增加数据_2.avi    10分

  6.用到数据库  USE database_name;    进入数据库后并未退闻明令,不过能够一连用SHOW查看数据库并用USE切换到此外数据库

  6.利用数据库  USE database_name;    进入数据库后并未有退有名令,然而能够持续用SHOW查看数据库并用USE切换来别的数据库

  1. 安装到位了,出现如下分界面将进入 mysql 配置向导。

###22(MySQL数据库)更新数据.avi      10分

6.表的简约操作

6.表的简便操作

澳门新萄京官方网站 17

###23(MySQL数据库)删除数据.avi      3分

  使用数据库后实行的操作

  使用数据库后进行的操作

  1. 选用安插格局, “Detailed Configuration(手动正确配置) ”、 “Standard Configuration(标准配置) ”,作者
    们挑选“Detailed Configuration”,方便熟悉配置进程。

###24(MySQL数据库)命令行乱码难点.avi      4分

  1.创建表  CREATE TABLE table_name(字段名称 字段数据类型  [约束],

  1.创建表  CREATE TABLE table_name(字段名称 字段数据类型  [约束],

澳门新萄京官方网站 18

###25(MySQL数据库)数据表和测试数据希图.avi      4分

                        字段名称 字段数据类型  [约束],    

                        字段名称 字段数据类型  [约束],    

  1. 选取服务器类型, “Developer Machine(开荒测试类, mysql 占用没多少财富) ”、 “Server Machine(服务
    器类型, mysql 占用较多财富) ”、 “Dedicated MySQL Server Machine(特地的数据库服务器, mysql 占
    用具备可用资源) ”

###26(MySQL数据库)数据的基本查询.avi      9分

                      字段名称 字段数据类型  [约束]

                      字段名称 字段数据类型  [约束]

澳门新萄京官方网站 19

首节课

                      );

                      );

  1. 挑选mysql数据库的大要用途, “Multifunctional Database(通用多功用型,好) ”、 “Transactional
    Database Only(服务器类型,专注于事务管理,一般) ”、 “Non-Transactional Database Only(非事务
    管理型, 较轻巧, 主要做一些监察、 记数用, 对 MyISAM 数据类型的支撑只限于 non-transactional), 按“Next”
    继续。

###27(MySQL数据库)数据的尺度查询_1.avi      9分

  2.翻看全数表  SHOW TABLES;

  2.翻看全体表  SHOW TABLES;

澳门新萄京官方网站 20

###28(MySQL数据库)数据的原则查询_2.avi      7分

   查看表的详细音信  DESC table_name;

   查看表的详细新闻  DESC table_name;

澳门新萄京官方网站 21

###29(MySQL数据库)排序查询.avi 7分

   查看表的创建音信  SHOW CREATE TABLE table_name;

   查看表的创建消息  SHOW CREATE TABLE table_name;

  1. 选料网址并发连接数,同有的时候间连接的多少, “Decision Support(DSS)/OLAP( 二十一个左右) “Online ”、 Transaction
    Processing(OLTP)( 500 个左右) ”、 “马努al Setting(手动设置,自身输八个数) ”。

###30(MySQL数据库)聚合函数.avi 13分

  3.增加列  ALTER TABLE table_name ADD 列名 类型 [完整性约束原则] [first|after 字段名];

  3.增加列  ALTER TABLE table_name ADD 列名 类型 [完整性约束原则] [first|after 字段名];

澳门新萄京官方网站 22

###31(MySQL数据库)分组查询.avi 17分

    增增加列用逗号隔离

    增加加列用逗号隔离

  1. 是或不是启用 TCP/IP 连接,设定端口,假诺不启用,就只好在融洽的机械上访问 mysql 数据库了,在那几个页
    表面,您还是能挑选“启用标准情势”( Enable Strict Mode),那样 MySQL 就不会容许细小的语法错误。
    假如是菜鸟,提议你裁撤标准方式以调整和减少麻烦。但熟识 MySQL 现在,尽量使用专门的工作情势,因为它可以降
    低有剧毒数据进入数据库的也许性。按“Next”继续

###01数据库概念

  4.修改 

  4.修改 

澳门新萄京官方网站 23

* A: 什么是数据库

   修改一列类型   ALTE奥迪Q5 TABLE table_name MODIFY 列名 类型  [完整性约束标准];

   修改一列类型   ALTE福特Explorer TABLE table_name MODIFY 列名 类型  [完整性约束规范];

  1. 不怕对 mysql 默许数据库语言编码实行安装(主要),一般选 UTF-8,按 “Next”继续。

数据库正是积攒数据的仓库,其本质是二个文件系统,数据根据一定的格式将数据存款和储蓄起来,用户能够对数据库中的数据开始展览追加,修改,删除及查询操作。

   修改列名    ALTE凯雷德 TABLE table_name CHANGE 列名 新名 类型 [封锁规范];

   修改列名    ALTE奥迪Q3 TABLE table_name CHANGE 列名 新名 类型 [封锁规范];

澳门新萄京官方网站 24

* B: 什么是数据库管理种类

   修改表名  RENAEM TABLE 表名 TO 新名;

   修改表名  RENAEM TABLE 表名 TO 新名;

  1. 分选是否将 mysql 安装为 windows 服务, 还能钦命Service Name(服务标识名称), 是或不是将 mysql 的 bin
    目录到场到 Windows PATH(参预后, 就足以平素利用 bin 下的文本, 而不用提议目录名, 举例连接,
    “mysql. exe -uusername -ppassword;”就足以了,不用提议 mysql.exe 的全体地址,很有益于),作者那边全数
    打上了勾, Service Name 不改变。按“Next”继续。

数据库处理连串(DataBase Management System,DBMS):指一种操作和治本数据库的大型软件,用于创设、使用和保证数据库,

   修改表的字符集  ALTE奇骏 TABLE table_name CHARACTER SET utf8;

   修改表的字符集  ALTEEvoque TABLE table_name CHARACTER SET utf8;

澳门新萄京官方网站 25

对数据库举行联合管理和决定,以担保数据库的安全性和完整性。用户通过数据库处理种类访问数据库中表内的数额。

  5.删除 

  5.删除 

  1. 询问是不是要修改默认root 用户(一级管理) 的密码。 “Enable root access from remote machines(是还是不是允
    许 root 用户在其余的机械上登录,倘使要安全,就绝不勾上,假设要有益于,就勾上它) ”。最终“Create
    An Anonymous Account(新建一个佚名用户,匿名用户能够趋之若鹜数据库,不能够操作数据,包蕴查询) ”,
    貌似就不用勾了,设置甘休,按“Next”继续。

###02左近的数据库

   删除一列  ALTE安德拉 TABLE table_name DROP 列名;

   删除一列  ALTE福睿斯 TABLE table_name DROP 列名;

澳门新萄京官方网站 26

* A: 常见的数据库

   删除表   DROP TABLE table_name;

   删除表   DROP TABLE table_name;

  1. 显明设置正确,按“Execute”使设置生效,即落成MYSQL 的设置和计划。

MYSQL :开源免费的数据库,Mini的数码库.已经被Oracle收购了.MySQL6.x版本也初阶收取薪金。

   删除主键的自拉长  ALTE汉兰达 TABLE table_name CHANGE id id int(10)

   删除主键的自增加  ALTELAND TABLE table_name CHANGE id id int(10)

澳门新萄京官方网站 27

Oracle :收取工资的特大型数据库,Oracle公司的制品。Oracle收购SUN公司,收购MYSQL。

7.约束原则

7.封锁原则

澳门新萄京官方网站 28

DB2 :IBM集团的数据库产品,收取金钱的。常动用在银行体系中.

  成立表的时候,字段前面要加约束条件。常用的自律原则有:

  创制表的时候,字段前面要加约束条件。常用的自律原则有:

小心: 设置结束, 按“Finish”后有一个相比较宽泛的谬误, 正是无法“Start service”, 一般出现在原先有安装 mysql
的服务器上,化解的法子,先确认保证从前设置的 mysql 服务器深透卸载掉了;不行的话,检查是还是不是按上边一步所说,
事先的密码是不是有更换,照上边的操作;若是照旧足够,将 mysql 安装目录下的 data 文件夹备份,然后删除,在
设置到位后, 将安装生成的 data 文件夹删除, 备份的 data 文件夹移回来, 再重启 mysql 服务就足以了, 这种境况
下,恐怕须要将数据库检查一下,然后修复三遍,幸免数据出错。

SQLServer:MicroSoft 公司收取金钱的十分的小非常大的数据库。C#、.net等语言常动用。

  1.非空  not null

  1.非空  not null

澳门新萄京官方网站 29

SyBase :已经淡出历史舞台。提供了二个相当标准数据建模的工具PowerDesigner。

  2.唯一性 unique

  2.唯一性 unique

焚林而猎办法:卸载 MySQL,重装 MySQL

SQLite : 嵌入式的微型数据库,应用在手提式有线电话机端。

  3.主键  primary key  假如四个字段设置了非空属性和唯一性约束,那么自动识别为主键

  3.主键  primary key  尽管贰个字段设置了非空属性和唯一性约束,那么自动识别为主键

3.2 数据库的卸载

Java相关的数据库:MYSQL,Oracle.

  4.自增  auto_increment  唯有主键能够设置那几个约束

  4.自增  auto_increment  唯有主键能够设置那么些约束

1. 停下 window 的 MySQL 服务。 找到“调节面板”-> “管理工科具”-> “服务”,停止 MySQL 后台服务

此间运用MySQL数据库。MySQL中能够有多个数据库,数据库是当真存储数据的地点

   

   

澳门新萄京官方网站 30

###03数据库和管制连串

8.sql数据类型

8.sql数据类型

  1. 卸载 MySQL 安装程序。找到“调节面板”-> "程序和功用",卸载 MySQL 程序。

* A: 数据库管理种类

数值类型:  

数值类型:  

澳门新萄京官方网站 31

----数据库1

 

 

  1. 删除 MySQL 安装目录下的享有文件。
  2. 删除 c 盘 ProgramDate 目录中有关 MySQL 的目录。路线为: C:ProgramDataMySQL(是隐蔽文件,必要出示
    出来)

----数据表1a

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E 38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E 38) 0,(1.175 494 351 E-38,3.402 823 466 E 38) 单精度
浮点数值
DOUBLE 8 字节 (1.797 693 134 862 315 7 E 308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) 双精度
浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M 2否则为D 2 依赖于M和D的值 依赖于M和D的值 小数值
类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E 38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E 38) 0,(1.175 494 351 E-38,3.402 823 466 E 38) 单精度
浮点数值
DOUBLE 8 字节 (1.797 693 134 862 315 7 E 308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) 双精度
浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M 2否则为D 2 依赖于M和D的值 依赖于M和D的值 小数值

澳门新萄京官方网站 32

----数据表1b

 

 

第4节 数据库服务的启航与登陆

----数据库2

时光项目:

时刻等级次序:

 

-----数据表2a

 

 

 MySQL 服务器运营情势有两种:
1) 通过劳务的主意自行运转
2) 手动运维的不二秘诀

-----数据表2b

类型 大小
(字节)
范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳
类型 大小
(字节)
范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

澳门新萄京官方网站 33

###04数据表和Java中类的应和关系

  

  

澳门新萄京官方网站 34

* A:数据库中以表为集体单位存款和储蓄数据。

字符串类型:

字符串类型:

 

表类似大家的Java类,每一种字段都有关照的数据类型。

类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65 535字节 二进制形式的长文本数据
TEXT 0-65 535字节 长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LOGNGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据
类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65 535字节 二进制形式的长文本数据
TEXT 0-65 535字节 长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LOGNGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据

 4.2 DOS 命令格局运维
4.2.1 操作步骤:

那么用大家耳濡目染的java程序来与关系型数据比较,就能发觉以下对应涉及。

9.表记录操作

9.表记录操作

澳门新萄京官方网站 35

类----------表

  1.插入数据 insert

  1.插入数据 insert

 4.3  调控台连接数据库

类中属性----------表中字段

  INSERT [INTO] table_name (字段名称,,,) VALUES(值,,,),

  INSERT [INTO] table_name (字段名称,,,) VALUES(值,,,),

MySQL 是三个须要账户名密码登入的数据库,登录后使用,它提供了一个私下认可的 root 账号,使用安装时设置
的密码就可以登陆

对象----------记录

                           (值,,,),

                           (值,,,),

4.3.1 登入格式 一:u 和 p 前边未有空格
mysql -u 用户名 -p 密码

###05数据表和Java中类的附和关系用户表举个例子

                            .......  

                            .......  

澳门新萄京官方网站 36

* A:举例:

                           (值,,,);

                           (值,,,);

 后输入密码方式:

账务表

  2.修改表记录

  2.修改表记录

 澳门新萄京官方网站 37

id name age

    UPDATE table_name SET 字段=值,字段=值....WHERE子句;

    UPDATE table_name SET 字段=值,字段=值....WHERE子句;

4.3.2 登陆格式 二: 

1 lisi 23

  3.删除表记录

  3.删除表记录

mysql -hip 地址 -u用户名 -p密码 

2 wang 24

    DELETE FROM table_name WHERE子句; 不加where子句的话会把方方面面表删除

    DELETE FROM table_name WHERE子句; 不加where子句的话会把整个表删除

127.0.0.1 代表本机的 IP 地址 

每一条记下对应三个User的对象

    TRUNCATE TABLE table_name;  删除全数表

    TRUNCATE TABLE table_name;  删除全体表

 澳门新萄京官方网站 38

[user1  id = 1 name = lisi  age = 23]

    delete和truncate的区别:

    delete和truncate的区别:

4.3.3 登陆格式 三: 

[user2 id = 2 name = wang age = 24]

      1.语法分化

      1.语法不相同

mysql --host=ip 地址 --user=用户名 --password=密码 

###06MySQL数据库安装

      2.delete后头能够加限制规范,选取删除某条记下,而truncate只可以删掉整个表

      2.delete前边能够加限制条件,选用删除某条记下,而truncate只可以删掉整个表

澳门新萄京官方网站 39

A: 安装步骤参见 day28_source《MySQL安装图解.doc》

      3.delete 方可回到删除的多少,可是truncate不能

      3.delete 可以回来删除的数额,不过truncate无法

4.3.4 退出 MySQL: 

B: 安装后,MySQL会以windows服务的方法为我们提供数据存储功用。开启和停业服务的操作:右键点击自个儿的管理器→管理→服务→能够找到MySQL服务开启或终止。

      4.在剔除全数表的时候,delete的原理是一条一条的删除,而truncate 的规律是把方方面面表删掉,再新建三个如出一辙字段的表

      4.在剔除全体表的时候,delete的法则是一条一条的删减,而truncate 的规律是把整个表删掉,再新建多个一样字段的表

quit 或 exit 

###07数据库在系统服务

       所以,要是表中有自拉长的字段,delete删除之后,新的表是从上个地方上马自增的,不过truncate是从1起头

       所以,如若表中有自拉长的字段,delete删除之后,新的表是从上个地点上马自增的,可是truncate是从1开端

4.4 SQLyog 图形化学工业具——客户端 

* A:开启服务和停业服务

10.表记录查询  select

10.表笔录查询  select

SQLyog 是产业界有名的Webyog 公司出品的一款不难高效、成效壮大的图形化MySQL 数据库处理工科具。使用
SQLyog 能够非常的慢直观地让您从社会风气的其余角落通过网络来保卫安全远端的 MySQL 数据库

格局1: 笔者的计算机-----> (右键)管理---->服务和应用程序---->服务----找到MySQL服务右键运转或关闭

本条是最主要,也是最常用的

那个是最注重,也是最常用的

4.4.1 使用 SQLyog 登陆数据库 

措施2: 进入dos窗口 使用命令: net start mysql 开启MySQL服务;  命令:net stop mysql 关闭MySql服务

  1.单表查询

  1.单表查询

澳门新萄京官方网站 40

###08MySQL的登录

SELECT [DISTINCT] *|field1,field,... from table_name where .... group by .... order by...[desc|asc]

SELECT [DISTINCT] *|field1,field,... from table_name where .... group by .... order by...[desc|asc]

4.5 MySQL 目录结构 

* A: MySQL是二个亟待账户名密码登陆的数据库,登入后采纳,它提供了多个私下认可的root账号,使用安装时设置的密码就能够登入。

     1.展现表的整个音信  SELECT * FROM table_name; 

     1.展现表的一体新闻  SELECT * FROM table_name; 

澳门新萄京官方网站 41

格式1:cmd>  mysql –u用户名 –p密码

        展现内定列的新闻  SELECT 列,列.. FROM table_name;

        突显钦命列的音信  SELECT 列,列.. FROM table_name;

4.6 数据库管理体系 

例如:mysql -uroot –proot

        SELECT 前边能够跟 表明式 、distinct(表示去重)

        SELECT 前面能够跟 表明式 、distinct(表示去重)

数据库管理种类(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建
立、使用和护卫数据库,对数据库实行合并保管和调整,以管教数据库的安全性和完整性。用户通过数据库管理
系统访问数据库中表内的多少

格式2:cmd>  mysql --host=ip地址 --user=用户名 --password=密码

     2.用WHERE子句举办过滤

     2.用WHERE子句举办过滤

4.7 数据库管理连串、数据库和表的关联
数据库管理程序(DBMS)能够管理两个数据库,一般开荒职员会针对每一个应用创造一个数据库。为保存应用
中实体的数码,一般会在数据库创立七个表,以保留程序中实体 User 的多寡。

例如:mysql --host=127.0.0.1  --user=root --password=root

       WHERE子句中得以采用:

       WHERE子句中得以选拔:

      数据库管理系列、数据库和表的涉及如图所示:

###10SQL语句介绍和分类

        1.比较运算符  > < >= <= !=

        1.相比较运算符  > < >= <= !=

 澳门新萄京官方网站 42

* A:SQL介绍

        2.between .. and ..   在..和.. 之间

        2.between .. and ..   在..和.. 之间

4.7.1 结论:
贰个数据库服务器包罗多少个库
几个数据库包蕴多张表
一张表包括多条记下

* 前边学习了接口的代码呈现,以后来读书接口的合计,接下里从生活中的例子进行认证。

        3.in (a,b,c)         在a,b,c 那四个值中二个

        3.in (a,b,c)         在a,b,c 那五个值中四个

 

* 比方:大家都精通Computer上留有很八个插口,而那几个插口能够插入相应的装置,那么些道具为何能插在地点吧?

        4.like  条件  eg: like "李%"  表示已“李”开头

        4.like  条件  eg: like "李%"  表示已“李”开头

 5.0 SQL 的概念  

* 首要缘由是这么些器械在生产的时候符合了那么些插口的选取规则,不然将无法插入接口中,更不可能运用。发掘这些插口的出现让大家运用越来越多的配备。

                  like "李_"    表示以“李”初步,并且后边有贰个字符,一个下划线代表三个字符

                  like "李_"    表示以“李”起头,并且前面有多少个字符,四个下划线代表一个字符

5.1 什么是 SQL
Structured Query Language 结构化查询语言

* B: SQL分类

        5.逻辑运算符 and or not

        5.逻辑运算符 and or not

5.2 SQL 作用
1) 是一种具有关系型数据库的查询专门的工作,不一样的数据库都扶助。
2) 通用的数据库操作语言,能够用在分裂的数据库中。
3) 分裂的数据库 SQL 语句有一对有别于

* 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等

     3.order by  象征以。。排序,排序的列能够是列名,也得以是设置的别称

     3.order by  意味着以。。排序,排序的列能够是列名,也足以是设置的外号

 澳门新萄京官方网站 43

* 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的笔录进行立异。关键字:insert,delete,update等

        order语句前边能够跟四个形式,asc表示升序(默许),desc表示降序

        order语句前边能够跟七个形式,asc表示升序(暗中认可),desc代表降序

5.3 SQL 语句分类

* 数据调控语言:简称DCL(Data Control Language),用来定义数据库的拜会权限和安全等第,及创制用户。

     4.group by 意味着以..分组,分组后只会来得每种字段的第一条记下,分组后的筛选拔的第一字是having ,成效和 where同样,与where比较,having前面可以选择聚合函数

     4.group by 代表以..分组,分组后只会突显各种字段的首先条记下,分组后的筛选拔的首要字是having ,功用和 where同样,与where相比较,having前面能够应用聚合函数

1) Data Definition Language (DDL 数据定义语言) 如:建库,建表
2) Data Manipulation Language(DML 数据操纵语言),如:对表中的笔录操作增加和删除改
3) Data Query Language(DQL 数据查询语言),如:对表中的查询操作
4) Data Control Language(DCL 数据调节语言),如:对用户权限的安装

* 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

     5.聚合函数:

     5.聚合函数:

 5.4 MySQL 的语法 

* C: SQL通用语法

        1.avg() 求平均值

        1.avg() 求平均值

 

SQL语句能够单行或多燕体写,以分局结尾

        2.count() 总计个数

        2.count() 计算个数

1) 每条语句以分部结尾,借使在 SQLyog 中不是必须加的。
2) SQL 中不区分轻重缓急写,关键字中以为大写和题诗是一律的
3) 3 种注释:

可应用空格和缩进来升高语句的可读性

        3.sum() 求和函数

        3.sum() 求和函数

--空格 单行注释
/* */ 多行注释
# 那是 mysql 特有的注释格局

MySQL数据库的SQL语句不区分轻重缓急写,建议选拔大写,比如:SELECT * FROM user。

        4.max(),min()  最大值最小值函数

        4.max(),min()  最大值最小值函数

第6节 DDL 操作数据库 

平等能够行使/**/的办法成就注释

     6.limit 关键字用来支配彰显的条数,limit 1 象征只展现第一行,limit 2,5 代表展现第2到5行

     6.limit 关键字用来支配显示的条数,limit 1 代表只呈现第一行,limit 2,5 代表突显第2到5行

6.1 成立数据库
6.1.1 创造数据库的两种格局
 成立数据库
CREATE DATABASE 数据库名;
 判别数据库是还是不是曾经存在,不设有则创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;
 创立数据库并点名字符集
CREATE DATABASE 数据库名 CHARACTECR-V SET 字符集;

###11数量表中的数据类型

     7.用到正则表明式

     7.使用正则表明式

6.1.2 具体操作: 

* A:MySQL中的大家常使用的数据类型如下

        

        

澳门新萄京官方网站 44

详尽的数据类型如下(不提出详细阅读!)

        

        

6.2 查看数据库 

分拣 类型名称 表达

  2.多表查询

  2.多表查询

 按 tab 键能够自行补全关键字 

莫西干发型系列 tinyInt 一点都不大的子弹头

    1.外键

    1.外键

澳门新萄京官方网站 45

smallint 小的平头

      倘使两张表要创制联系,就必要采用到外键,须要考虑二种关系:一对一,多对多,和一对多

      借使两张表要创立联系,就必要选取到外键,必要惦记两种关系:一对一,多对多,和一对多

澳门新萄京官方网站 46

mediumint 中等大小的大背头

      1.一对多: 这种模型中,有主表和子表的分别,比如一个教员职员和工人有五个学生,四个学员只好有两个教师职员和工人,这种境况老师正是主表,学生就是子表,大家必要在子表中开创关联字段(外键)

      1.一对多: 这种模型中,有主表和子表的区分,举个例子三个师资有多少个学生,三个学员不得不有二个先生,这种情形老师正是主表,学生正是子表,大家须要在子表中创立关联字段(外键)

 

int(integer) 普通大小的子弹头

        扩大外键:[ADD CONSTRAINT name] FOREIGN KEY (字段名)REFERENCES table_name;

        扩大外键:[ADD CONSTRAINT name] FOREIGN KEY (字段名)REFERENCES table_name;

 6.3 修改数据库 

小数类型 float 单精度浮点数

        删除却键:ALTELX570 TABLE table_name DROP FOREIGN KEY name;

        删除了那一个之外键:ALTE奥迪Q3 TABLE table_name DROP FOREIGN KEY name;

6.3.1 修改数据库默许的字符集

double 双精度浮点数

              (这么些name是增添外键时给外键起的名字,假设未有安装,从表的创导格局中能够找到)

              (那么些name是扩展外键时给外键起的名字,要是未有设置,从表的创建格局中能够找到)

 ALTE奥德赛 DATABASE 数据库名 DEFAULT CHARACTE智跑 SET 字符集; 

decimal(m,d) 压缩严峻的定点数

      2.多对多:供给借助第三张表,在第三张表中创立三个外键

      2.多对多:必要依据第三张表,在第三张表中创建八个外键

如  将 db3 数据库的字符集改成 utf8 

日期类型 year YYYY  一九〇一~2155

      3.一对一:这种实际正是外键加三个unique,没多少用

      3.一对一:这种实际正是外键加多个unique,非常少用

 澳门新萄京官方网站 47

time HH:MM:SS  -838:59:59~838:59:59

      4. 若是两张表建设构造了事关,就不可忽视从表中删除记录了,必须排除关系后本领删

      4. 只要两张表创建了涉及,就不可以小看从表中删除记录了,必须化解关系后能力删

6.4 删除数据库 

date YYYY-MM-DD 1000-01-01~9999-12-3

    2.内连接

    2.内连接

6.4.1 删除数据库的语法 

datetime YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59

      大家在查询表记录的时候,能够而且体现多张表的记录,类似

      大家在查询表记录的时候,可以而且出示多张表的记录,类似

DROP DATABASE 数据库名; 

timestamp YYYY-MM-DD HH:MM:SS  1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC

      select * from tableA,tableB 

      select * from tableA,tableB 

6.4.2 具体操作: 

文件、二进制类型 CHALAND(M) M为0~255之间的整数

      可是那样并不是我们想要的结果,当然我们得以在询问结果后边用where子句进行筛选,但更常用的是用内接连:

      然则这么并不是大家想要的结果,当然我们得以在询问结果后边用where子句实行筛选,但更常用的是用内连接:

每行 SQL 语句要求选中再举办,能够按 F9 

VARCHAR(M) M为0~65535之间的子弹头

      select * from tableA inner join tableB on tableA.id = tableB.id

      select * from tableA inner join tableB on tableA.id = tableB.id

 如:删除 db2 数据库 

TINYBLOB 允许长度0~255字节

    3.外连接

    3.外连接

 澳门新萄京官方网站 48

BLOB 允许长度0~65535字节

      1.左外接连:在内连接的基本功上加码左侧有右侧未有的结果

      1.左外接连:在内连接的根底上扩展左边有左侧没有的结果

6.5 使用数据库 

MEDIUMBLOB 允许长度0~167772150字节

          select * from tableA left join tableB on tableA.id = tableB.id

          select * from tableA left join tableB on tableA.id = tableB.id

 6.5.1 查看正在利用的数额库 

LONGBLOB 允许长度0~4294967295字节

      2.右外接连:在内连接的根基上扩大右侧有右边未有的结果

      2.右外接连:在内连接的基本功上加码右侧有左边未有的结果

 SELECT DATABASE(); 使用的一个mysql 中的全局函数 

TINYTEXT 允许长度0~255字节

       select * from tableA right join tableB on tableA.id = tableB.id

       select * from tableA right join tableB on tableA.id = tableB.id

6.5.2 使用/切换数据库 

TEXT 允许长度0~65535字节

  

  

USE 数据库名; 

MEDIUMTEXT 允许长度0~167772150字节

多表查询演习(代码通过navicat书写):

多表查询演练(代码通过navicat书写):

如:

LONGTEXT 允许长度0~4294967295字节

澳门新萄京官方网站 49澳门新萄京官方网站 50

澳门新萄京官方网站 51澳门新萄京官方网站 52

澳门新萄京官方网站 53

VARBINA路虎极光Y(M)允许长度0~M个字节的变长字节字符串

  1 -- 1.查询平均成绩大于八十分的同学的姓名和平均成绩
  2 -- SELECT sname,avg(num) from student INNER JOIN  score
  3 --                                 on student.sid = score.student_id
  4 --                                 GROUP BY student_id
  5 --                                 HAVING avg(num) >80
  6 
  7 -- 2、查询所有学生的学号,姓名,选课数,总成绩
  8 
  9 -- SELECT student.sid,sname,count(course_id),sum(num) from student
 10 --                     INNER JOIN score
 11 --                     on score.student_id = student.sid
 12 --                     GROUP BY student_id
 13 -- 3、查询没有报李平老师课的学生姓名
 14 
 15 -- SELECT sname from student WHERE sid not in (SELECT DISTINCT student_id from score WHERE course_id  in (SELECT cid from teacher
 16 --                                                                                     INNER JOIN course
 17 --                                                                                     on teacher.tid = course.teacher_id
 18 --                                                                                     WHERE tname like '李平%'))
 19 
 20 -- 4、查询物理课程比生物课程高的学生的学号
 21 -- SELECT * from
 22 --
 23 -- (SELECT * from    score WHERE course_id = (SELECT cid from course WHERE cname="物理")) as A
 24 --
 25 -- INNER JOIN
 26 --
 27 -- (SELECT * from    score WHERE course_id = (SELECT cid from course WHERE cname="生物")) as B
 28 --
 29 -- on A.student_id = B.student_id
 30 --
 31 -- WHERE A.num > B.num
 32 --
 33 -- 5、查询没有同时选修物理课程和体育课程的学生姓名
 34 
 35 -- SELECT sname from student where sid not in(SELECT student_id from score
 36 --                 WHERE course_id
 37 --                 in (select cid from course
 38 --                         WHERE cname
 39 --                         like "物理" or cname = "体育")
 40 --                 GROUP BY student_id having count(sid)=2)
 41 --
 42 
 43 -- 6、查询挂科超过两门(包括两门)的学生姓名和班级
 44 
 45 -- SELECT sname,caption from student
 46 --                                         INNER JOIN class
 47 --                                         on student.sid = class.cid
 48 --                                         where sid in
 49 --                                         (SELECT student_id from score
 50 --                                                     where num    <60 GROUP BY student_id
 51 --                                                             HAVING count(num) >=2)
 52 
 53 -- 7、查询选修了所有课程的学生姓名
 54 -- SELECT sname from student
 55 --                             WHERE sid in (SELECT student_id  from score
 56 --                                                                                             GROUP BY student_id
 57 --                                                                                                 HAVING count(course_id) = (SELECT count(cid) from course)
 58 -- )
 59 
 60 
 61 
 62 
 63 -- 8、查询不同课程但成绩相同的学号,课程号,成绩
 64 
 65 SELECT student_id,course_id,num from score WHERE student_id = (SELECT A.student_id from
 66 
 67 (SELECT *,COUNT(DISTINCT num) as C FROM score GROUP BY student_id)as A
 68 
 69 LEFT JOIN
 70 
 71 (SELECT *,count(num) as D FROM score GROUP BY student_id) as B
 72 
 73 on A.sid = B.sid
 74 
 75 where C!=D)
 76 
 77 -- 9、查询没学过“李平”老师课程的学生姓名以及选修的课程名称;
 78 
 79 SELECT a.sname,course.cname from course
 80                     RIGHT JOIN (SELECT * from student
 81                                 WHERE sid not in
 82                                             (select student_id
 83                                                     from score where course_id =3) )as A
 84                     on course.cid = A.class_id
 85 
 86 
 87 
 88 
 89 -- 10、查询所有选修了学号为1的同学选修过的一门或者多门课程的同学学号和姓名;
 90 
 91 --
 92 SELECT sid,sname
 93         from student
 94         WHERE sid in (SELECT DISTINCT student_id from score 
 95                                                                 WHERE course_id
 96                                                                 in (SELECT course_id
 97                                                                                 from score where student_id = 1))
 98 
 99 
100 
101 
102 -- 11、任课最多的老师中学生单科成绩最高的学生姓名
103 
104 SELECT sname from student
105         where sid in (SELECT DISTINCT student_id from score
106                                             WHERE course_id in (SELECT cid from course
107                                                     where teacher_id=(SELECT teacher_id from course
108                                                             GROUP BY teacher_id order by count(cid) desc limit 1))
109                                                                         and num=(SELECT max(num) from score WHERE course_id in
110                                                                                 (SELECT cid from course where teacher_id=(SELECT teacher_id
111                                                                                             from course GROUP BY teacher_id order by count(cid) desc limit 1)) ))-- SELECT * from score  GROUP BY course_id having
  1 -- 1.查询平均成绩大于八十分的同学的姓名和平均成绩
  2 -- SELECT sname,avg(num) from student INNER JOIN  score
  3 --                                 on student.sid = score.student_id
  4 --                                 GROUP BY student_id
  5 --                                 HAVING avg(num) >80
  6 
  7 -- 2、查询所有学生的学号,姓名,选课数,总成绩
  8 
  9 -- SELECT student.sid,sname,count(course_id),sum(num) from student
 10 --                     INNER JOIN score
 11 --                     on score.student_id = student.sid
 12 --                     GROUP BY student_id
 13 -- 3、查询没有报李平老师课的学生姓名
 14 
 15 -- SELECT sname from student WHERE sid not in (SELECT DISTINCT student_id from score WHERE course_id  in (SELECT cid from teacher
 16 --                                                                                     INNER JOIN course
 17 --                                                                                     on teacher.tid = course.teacher_id
 18 --                                                                                     WHERE tname like '李平%'))
 19 
 20 -- 4、查询物理课程比生物课程高的学生的学号
 21 -- SELECT * from
 22 --
 23 -- (SELECT * from    score WHERE course_id = (SELECT cid from course WHERE cname="物理")) as A
 24 --
 25 -- INNER JOIN
 26 --
 27 -- (SELECT * from    score WHERE course_id = (SELECT cid from course WHERE cname="生物")) as B
 28 --
 29 -- on A.student_id = B.student_id
 30 --
 31 -- WHERE A.num > B.num
 32 --
 33 -- 5、查询没有同时选修物理课程和体育课程的学生姓名
 34 
 35 -- SELECT sname from student where sid not in(SELECT student_id from score
 36 --                 WHERE course_id
 37 --                 in (select cid from course
 38 --                         WHERE cname
 39 --                         like "物理" or cname = "体育")
 40 --                 GROUP BY student_id having count(sid)=2)
 41 --
 42 
 43 -- 6、查询挂科超过两门(包括两门)的学生姓名和班级
 44 
 45 -- SELECT sname,caption from student
 46 --                                         INNER JOIN class
 47 --                                         on student.sid = class.cid
 48 --                                         where sid in
 49 --                                         (SELECT student_id from score
 50 --                                                     where num    <60 GROUP BY student_id
 51 --                                                             HAVING count(num) >=2)
 52 
 53 -- 7、查询选修了所有课程的学生姓名
 54 -- SELECT sname from student
 55 --                             WHERE sid in (SELECT student_id  from score
 56 --                                                                                             GROUP BY student_id
 57 --                                                                                                 HAVING count(course_id) = (SELECT count(cid) from course)
 58 -- )
 59 
 60 
 61 
 62 
 63 -- 8、查询不同课程但成绩相同的学号,课程号,成绩
 64 
 65 SELECT student_id,course_id,num from score WHERE student_id = (SELECT A.student_id from
 66 
 67 (SELECT *,COUNT(DISTINCT num) as C FROM score GROUP BY student_id)as A
 68 
 69 LEFT JOIN
 70 
 71 (SELECT *,count(num) as D FROM score GROUP BY student_id) as B
 72 
 73 on A.sid = B.sid
 74 
 75 where C!=D)
 76 
 77 -- 9、查询没学过“李平”老师课程的学生姓名以及选修的课程名称;
 78 
 79 SELECT a.sname,course.cname from course
 80                     RIGHT JOIN (SELECT * from student
 81                                 WHERE sid not in
 82                                             (select student_id
 83                                                     from score where course_id =3) )as A
 84                     on course.cid = A.class_id
 85 
 86 
 87 
 88 
 89 -- 10、查询所有选修了学号为1的同学选修过的一门或者多门课程的同学学号和姓名;
 90 
 91 --
 92 SELECT sid,sname
 93         from student
 94         WHERE sid in (SELECT DISTINCT student_id from score 
 95                                                                 WHERE course_id
 96                                                                 in (SELECT course_id
 97                                                                                 from score where student_id = 1))
 98 
 99 
100 
101 
102 -- 11、任课最多的老师中学生单科成绩最高的学生姓名
103 
104 SELECT sname from student
105         where sid in (SELECT DISTINCT student_id from score
106                                             WHERE course_id in (SELECT cid from course
107                                                     where teacher_id=(SELECT teacher_id from course
108                                                             GROUP BY teacher_id order by count(cid) desc limit 1))
109                                                                         and num=(SELECT max(num) from score WHERE course_id in
110                                                                                 (SELECT cid from course where teacher_id=(SELECT teacher_id
111                                                                                             from course GROUP BY teacher_id order by count(cid) desc limit 1)) ))-- SELECT * from score  GROUP BY course_id having

 

BINA途观Y(M) 允许长度0~M个字节的定长字节字符串

练习题

练习题

 第7节 DDL 操作表结构 (前提先利用某些数据库 )

###12成立数据库操作

 

 

7.1 创建表
7.1.1 创造表的格式

* A: 制造数据库

澳门新萄京官方网站 54

格式:

7.1.2 关键字表达: 

* create database 数据库名;

成立表的重大字 表达
CREATE 创建
TABLE 表

* create database 数据库名 character set 字符集;

7.2 MySQL 数据类型 

例如:

澳门新萄京官方网站 55

#开创数据库 数据库中数据的编码采取的是设置数据库时钦赐的默许编码 utf8

澳门新萄京官方网站 56

CREATE DATABASE day21_1;

 7.2.3 具体操作: 

#创制数据库 并钦点数据库中数据的编码

 创建 student 表包含 id,name,birthday 字段 

CREATE DATABASE day21_2 CHARACTER SET utf8;

澳门新萄京官方网站 57

* B: 查看数据库

7.3 查看表
7.3.1 查看某些数据库中的全体表

翻开数据库MySQL服务器中的全部的数据库:

 SHOW  TABLES;

show databases;

7.3.2 查看表结构

翻看有些数据库的概念的消息:

DESC 表名;

show create database 数据库名;

7.3.3 查看创设表的 SQL 语句

例如:

 

show create database day21_1;

SHOW CREATE  TABLE 表名;

* C: 删除数据库

7.4 火速创造三个表结构同样的表

drop database 数据库名称;

7.4.1 语法

例如:

 

drop database day21_2;

CREATE TABLE 新表名 LIKE 旧表名; 

* D: 别的的数据库操作命令

7.5 删除表

切换数据库:

1)DROP TABLE 表名;

use 数据库名;

2)决断是还是不是留存 存在就删除:DROP TABLE IF EXISTS 表名;

例如:

7.6 修改表结构

use day21_1;

7.6.1 增加表列 ADD :ALTEEscort TABLE 表名 ADD 列名 类型;

* E: 查看正在选择的数据库:

 7.6.2 修改列类型 MODIFY :ALTE福特Explorer TABLE 表名 MODIFY 列名 新的类型;

select database();

7.6.3 修改列名 CHANGE :ALTE奥迪Q7 TABLE 表名 CHANGE 旧列名 新列名 类型;

###13创制数量表格式

 7.6.4 删除列 DROP :ALTER TABLE 表名 DROP 列名;

* A:格式:

7.6.5 修改表名 :RENAME TABLE 表名 TO 新表名;

create table 表名(

7.6.6 修改字符集 character set :ALTE汉兰达 TABLE 表名  CHARACTE智跑 SET 字符集;

字段名 类型(长度) 约束,

第8节 DML 操作表中的数据

字段名 类型(长度) 约束

 8.1 增多表中数量

);

INSERT [INTO] 表名 [ 字段名] VALUES ( 字段值)
8.1.1  插入全体字段

例如:

INSERT INTO  表名 ( 字段名 1,  字段名 2,  字段名 3…) VALUES (值 值 1, 值 值 2, 值 值 3);

###创立分类表

不写字段名

CREATE TABLE sort (

INSERT INTO 表名 VALUES (值 值 1, 值 值 2, 值 值 3…);
8.1.2 插入部分数据
INSERT INTO 表名 ( 字段名 1, 字段名 2, ...) VALUES (

sid INT, #分类ID

8.1.3  更新表记录

sname VARCHAR(100) #分拣名称

UPDATE  表名 SET  列名= 值 [WHERE  条件表明式]

);

8.4.1 不带条件修改数据
UPDATE 表名 SET 字段名= 值; -- 修改全数的行
8.4.2 带条件修改数据
UPDATE 表名 SET 字段名= 值 WHERE 字段名= 值;

###14约束

8.5 删除表记录
DELETE FROM 表名 [WHERE 条件表达式]
一经未有点名 WHERE 子句,MySQL 表中的全部记录将被剔除。
您可以在 WHERE 子句中内定其余条件
8.5.1 不带条件删除数据
DELETE FROM 表名;

* A: 约束的效率:

8.5.2 带条件删除数据
DELETE FROM 表名 WHERE 字段名= 值;
8.5.3 使用 truncate 删除表中全部记录
TRUNCATE TABLE 表名;
8.5.4 truncate 和 delete 的区别:
truncate 约等于删除表的布局,再创制一张表。

create table 表名(

第9节 DQL 查询表中的数据

列名 类型(长度) 约束,

SELECT 列名 FROM 表名 [WHERE 条件表明式]
1) SELECT 命令能够读取一行只怕多行记录。
2) 你能够应用星号(* )来取代其他字段,SELECT 语句会重返表的有所字段数据
3) 你能够选用 WHERE

列名 类型(长度) 约束

9.1.2 查询钦赐列
 查询内定列的数额,多少个列之间以逗号分隔
SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;

);

9.2  钦点列的别称举行查询

限制每一列能写什么数据,无法写什么数据。

 对列钦点别称
SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名;

* B: 哪些约束:

  对列和表同一时候钦定别称

主键约束

SELECT  字段名 1 AS  别名,  字段名 2 AS  别名... FROM  表名 AS  表别名;

非空约束

9.2.3 具体操作:
-- 使用别称
select name as 姓名,age as 年龄 from student;
-- 表使用小名
select st.name as 姓名,age as 年龄 from student as st
 表使用小名的来由:用于多表查询操作

唯一约束

9.4  查询结果参预运算

外键约束

9.4.1 某列数据和固定值运算
SELECT 列名 1 固定值 FROM 表名;
9.4.2 某列数据和其余列数据加入运算
SELECT 列名 1 列名 2 FROM 表名;
 注意: 插手运算的总得是数值类型

###15SQL代码的保留

9.5  条件查询

* A: 当sql语句实践了,就已经对数据库进行操作了,一般不要保存操作

SELECT  字段名 FROM  表名 WHERE  条件;

在SQLyog 中Ctrl S 保存的是写sql语句。

 运算符
正如运算符 表达
> 、< 、<= 、>= 、= 、<> <>在 SQL 中意味不对等,在 mysql 中也可以应用!=
没有==
BETWEEN...AND 在三个限制以内,如:between 100 and 200
一定于规则在 100 到 200 之间,西宁又包尾
IN( 会集) 集结表示多少个值,使用逗号分隔
LIKE ' 张%' 模糊查询
IS NULL 查询某一列为 NULL 的值,注:不可能写=NULL

###16开立用户表

 逻辑运算符
逻辑运算符 表明
and 或 && 与,SQL 中国建筑工程总公司议使用前者,后者并不通用。
or 或 || 或
not 或 ! 非

* A: 成立用户表:

 in 关键字
SELECT 字段名 FROM 表名 WHERE 字段 in ( 数据 1, 数据 2...);

必要:创立用户表,用户号码,姓名,用户的地方

 like 关键字
LIKE 表示模糊查询
SELECT * FROM 表名 WHERE 字段名 LIKE ' 通配符字符串';

* B: SQL语句

 MySQL 通配符
通配符 说明
% 相配猖狂四个字符串
_ 相配三个字符

CREAT TABLE users (

 ======================================================注:数据库比较轻易,可是单词相比较多 初学者要去记那一个单词,基本的 增,删,改,查。有错误还请指正。对于初学者看不懂的能够百度,问老师,给本身留言都足以,祝读者学有所成。

uid INT,

 

uname VARCHAR(20),

uaddress VARCHAR(200)

);

###17主键约束

* A: 主键是用以标志当前记录的字段。它的性状是非空,唯一。

在支付中貌似景况下主键是不富有任何意义,只是用来标志当前记录。

* B: 格式:

1.在成立表时创设主键,在字段前边加上  primary key.

create table tablename(

id int primary key,

.......

)

  1. 在创制表时开创主键,在表成立的结尾来内定主键

create table tablename(

id int,

.......,

primary key(id)

)

3.剔除主键:alter table 表名 drop primary key;

alter table sort drop primary key;

4.主键自动增进:一般主键是自增进的字段,无需钦定。

福衢寿车加多自拉长语句,主键字段后加auto_increment(只适用MySQL)

###18常见表的操作

* A: 查看数据库中的全体表:

格式:show tables;

 查看表结构:

格式:desc 表名;

例如:desc sort;

* B: 格式:drop table 表名;

例如:drop table sort;

###19修改表结构

* A: 修改表加多列

alter table 表名 add 列名 类型(长度) 约束;

例如:

#1,为分类表加多三个新的字段为 分类描述 varchar(20)

ALTER TABLE sort ADD sdesc VARCHAR(20);

* B: 修改表修改列的项目长度及约束

alter table 表名 modify 列名 类型(长度) 约束;

例如:

#2, 为分类表的归类名称字段进行修改,类型varchar(50) 增多约束 not null

ALTER TABLE sort MODIFY sname VARCHAR(50) NOT NULL;

* C: 修改表修改列名

alter table 表名 change 旧列名 新列名 类型(长度) 约束;

例如:

#3, 为分类表的归类名称字段实行退换 改变为 snamesname varchar(30)

ALTER TABLE sort CHANGE sname snamename VARCHAR(30);

* D: 修改表删除列

alter table 表名 drop 列名;

例如:

#4, 删除分类表中snamename那列

ALTER TABLE sort DROP snamename;

* E: 修改表名

rename table 表名 to 新表名;

例如:

#5, 为分类表sort 改名成 category

RENAME TABLE sort TO category;

* F: 修改表的字符集

salter table 表名 character set 字符集;

例如:

#6, 为分类表 category 的编码表实行修改,修改成 gbk

ALTER TABLE category CHARACTER SET gbk;

###20数码表增加数据_1

* A: 语法:

insert into 表 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 向表中插入有些列

* 举例:

INSERT INTO product (id,pname,price) VALUES (1,'笔记本',5555.99);

INSERT INTO product (id,pname,price) VALUES (2,'智能手提式无线电话机',9999);

* 注意:

列表,表名难题

对应难题,个数,数据类型

###21多少表加多数据_2

* A: 添增添少格式,不思索主键

insert into 表名 (列名) values (值)

* 举例:

INSERT INTO product (pname,price) VALUE('洗衣机',800);

* B: 增加数码格式,全体值全给出

格式

insert into 表名 values (值1,值2,值3..); --向表中插入全数列

INSERT INOT product VALUES (4,'微波炉',300.25)

* C: 增加数据格式,批量写入

格式:

insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)

举例:

INSERT INTO product (pname,price) VALUES

('智能手机器人',25999.22),

('彩色TV',1250.36),

('沙发',58899.02)

###22更新数据

* A: 用来修改钦定条件的数目,将满意条件的笔录钦定列修改为钦点值

语法:

update 表名 set 字段名=值,字段名=值;

update 表名 set 字段名=值,字段名=值 where 条件;

* B: 注意:

列名的类型与修改的值要一致.

修改值得时候不可能抢先最大长度.

值假诺是字符串或然日期供给加’’.

* C: 例如:

#1,将钦定的sname字段中的值 修改成 日用品

UPDATE sort SET sname='日用品';

#2, 将sid为s002的笔录中的sname改成 日常生活用品

UPDATE sort SET sname='日用品' WHERE sid='s002';

UPDATE sort SET sname='日用品' WHERE sid='s003';

###23去除数据

* A: 语法:

delete from 表名 [where 条件];

或者

truncate table 表名;

* B: 面试题:

去除表中全部记录使用delete from 表名; 依旧用truncate table 表名;

删除格局:delete 一条一条删除,不清空auto_increment记录数。

truncate 直接将表删除,重新建表,auto_increment将置为零,从新初阶。

* C: 例如:

DELETE FROM sort WHERE sname='日用品';

#表数据清空

DELETE FROM sort;

###24限令行乱码难题

A: 问题

我们在dos命令行操作中文时,会报错

insert into user(username,password) values(‘张三’,’123’);

ERROR 1366 (HY000): Incorrect string value: 'xD5xC5xC8xFD' for column 'username' at row 1

B: 原因:因为mysql的客户端编码的标题大家的是utf8,而系统的cmd窗口编码是gbk

赶尽杀绝方案(临时解决方案):修改mysql客户端编码。

show variables like 'character%'; 查看全数mysql的编码

client connetion result 和客户端相关

database server system 和劳动器端相关

将客户端编码修改为gbk.

set character_澳门新萄京官方网站,set_results=gbk; / set names gbk;

上述操作,只针对当下窗口有功效,假若关闭了服务器便失效。即使想要长久修改,通过以下格局:

在mysql安装目录下有my.ini文件

default-character-set=gbk 客户端编码设置

character-set-server=utf8 服务器端编码设置

留神:修改实现布署文件,重启服务

###25数据表和测试数据计划

* A: 查询语句,在付出中利用的次数最多,此处使用“zhangwu” 账务表。

创造账务表:

CREATE TABLE zhangwu (

id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID

name VALANDCHAPAJERO(200), -- 账务名称

money DOUBLE, -- 金额

);

* B: 插入表记录:

INSERT  INTO zhangwu(id,name,money) VALUES (1,'吃饭支出',247);

INSERT  INTO zhangwu(id,name,money) VALUES (2,'薪俸收入',12345);

INSERT  INTO zhangwu(id,name,money) VALUES (3,'衣服开荒',1000);

INSERT  INTO zhangwu(id,name,money) VALUES (4,'吃饭支出',325);

INSERT  INTO zhangwu(id,name,money) VALUES (5,'股票(stock)收入',七千);

INSERT  INTO zhangwu(id,name,money) VALUES (6,'打麻将支出',九千);

INSERT  INTO zhangwu(id,name,money) VALUES (7,null,5000);

###26多少的主导查询

* A: 查询钦命字段消息

select 字段1,字段2,...from 表名;

例如:

select id,name from zhangwu;

* B: 查询表中具备字段

select * from 表名;

例如:

select * from zhangwu;

注意:使用"*"在演习、学习进度中能够应用,在实际付出中,不引入使用。原因,要查询的字段消息不明了,若字段数量众多,会变成查询速度一点也不快。

* C: distinct用于去除重复记录

select distinct 字段 from 表名;

例如:

select distinct money from zhangwu;

* D: 外号询问,使用的as关键字,as能够省略的.

外号能够给表中的字段,表设置小名。 当查询语句复杂时,使用外号能够相当的大的地利操作。

表小名格式:

select * from 表名 as 别名;

select * from 表名 别名;

列外号格式:

select 字段名 as 别名 from 表名;

select 字段名 别名 from 表名;

例如

表别名:

select * from zhangwu as zw;

列别名:

select money as m from zhangwu;

select money m from zhangwu;

大家在sql语句的操作中,能够一直对列实行演算。

比如说:将兼具账务的金额 一千0元进行突显.

select pname,price 10000 from product;

==============================第二节课开首====================================

###27数指标尺码查询_1

* A:条件查询

where语句表条件过滤。满意条件操作,不满意不操作,多用于数据的询问与修改。

* B : 格式 :

select 字段  from 表名  where 条件;

* C: while条件的类型如下:

正如运算符

>  <  <=  >=  =  <> ---------- 大于、小于、大于(小于)等于、不等于

BETWEEN  ...AND...      ----------- 显示在某一距离的值(含头含尾)

IN(set)             -----------显示在in列表中的值,例:in(100,200)

LIKE 通配符   -----------模糊查询,Like语句中有两个通配符:

% 用来合营三个字符;例first_name like ‘a%’;

_ 用来协作叁个字符。例first_name like ‘a_’;

IS NULL 决断是不是为空

------------is null; 剖断为空

is not null; 判定不为空

* D 逻辑运算符

and                     ------------ 八个规格还要建构

or ------------ 多少个条件任一成立

not ------------ 不成立,例:where not(salary>100);

* E: 例如:

查询全体吃饭支出记录

SELECT * FROM zhangwu WHERE name = '吃饭支出';

查询出金额超越1000的音讯

SELECT * FROM zhangwu WHERE money >1000;

询问出金额在3000-五千里面包车型客车账务新闻

SELECT * FROM zhangwu WHERE money >=2000 AND money <=5000;

SELECT * FROM zhangwu WHERE money BETWEEN 2000 AND 5000;

查询出金额是1000或四千或3500的商品音信

SELECT * FROM zhangwu WHERE money =1000 OR money =5000 OR money =3500;

SELECT * FROM zhangwu WHERE money IN(1000,5000,3500);

###28多少的尺度查询_2

* A 模糊查询

查询出账务名称包罗”支出”的账务信息。

SELECT * FROM zhangwu WHERE name LIKE "%支出%";

* B 查询出账务名称中是三个字的账务音讯

SELECT * FROM gjp_ledger WHERE ldesc LIKE "_____"; -- 多少个下划线_

* C 查询出账务名称不为null账务信息

SELECT * FROM zhangwu WHERE name IS NOT NULL;

SELECT * FROM zhangwu WHERE NOT (name IS NULL);

###29排序查询

* A: 排序查询

选拔格式

* 通过order by语句,能够将查询出的结果开始展览排序。放置在select语句的末段。

* SELECT * FROM 表名 ORDER BY 字段ASC;

* ASC 升序 (默认)

* DESC 降序

* B: 案例代码

/*

询问,对结果集实行排序

升序,降序,对点名列排序

order by 列名 [desc][asc]

desc 降序

asc  升序排列,能够不写

*/

-- 查询账务表,价格实行升序

SELECT * FROM zhangwu ORDER BY zmoney ASC

-- 查询账务表,价格实行降序

SELECT * FROM zhangwu ORDER BY zmoney DESC

-- 查询账务表,查询全数的开支,对金额降序排列

-- 先过滤条件 where 查询的结果再排序

SELECT * FROM zhangwu WHERE zname LIKE'%支出%' ORDER BY zmoney DESC

###30聚合函数

* A: 聚合函数

* B: 函数介绍

* 此前大家做的查询都以横向查询,它们都以基于条件一行一行的展开判别,而使用聚合函数查询是纵向查询,

它是对一列的值进行计算,然后回到三个纯净的值;其它聚合函数会忽略空值。

* count:统计钦点列不为NULL的记录行数;

* sum:总计钦点列的数值和,假设钦定列;

* max:总结钦定列的最大值,假如内定列是字符串类型,那么使用字符串类型不是数值类型,那么合算结果为0排0序运算;

* min:总计钦定列的小小值,要是钦定列是字符串类型,那么使用字符串排序运算;

* avg:总括钦定列的平均值,如若钦点列类型不是数值类型,那么合算结果为0;

* C: 案例代码

/*

利用聚合函数查询总结

*/

-- count 求和,对表中的数量的个数求和  count(列名)

-- 查询计算账务表中,一共有多少条数据

SELECT COUNT(*)AS'count' FROM zhangwu

-- sum求和,对一列中数据进行求和计算 sum(列名)

-- 对账务表查询,对具备的金额求和总结

SELECT SUM(zmoney) FROM zhangwu

-- 求和,总结全部费用的总金额

SELECT SUM(zname) FROM zhangwu WHERE zname LIKE'%收入%'

INSERT INTO zhangwu (zname) VALUES ('彩票收入')

-- max 函数,对某列数据,获取最大值

SELECT MAX(zmoney) FROM zhangwu

-- avg 函数,总计五个列全数多少的平平均数量

SELECT AVG(zmoney)FROM zhangwu

###31分组查询

* A: 分组查询

* a: 使用格式

* 分组查询是指利用group by字句对查询音讯举办分组,举个例子:大家要总括出zhanguw表中全数分类账务的总的数量据,那时就要求运用group by 来对zhangwu表中的账务音信依附parent举办分组操作。

* SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件;

* 分组操作中的having子语句,是用于在分组后对数码实行过滤的,作用类似于where条件。

* b: having与where的区别

* having是在分组后对数据开始展览过滤.

* where是在分组前对数码举办过滤

* having前边能够利用分组函数(总计函数)

* where前边不得以行使分组函数。

* B: 案例代码

/*

查询全体的多少

进食支出 共计多少

薪酬收入 共计多少

衣着开垦 共计多少

股票(stock)收入 共计多少

打麻将付出 共计多少钱

分组查询:  group by 被分组的列名

务必跟随聚合函数

select 查询的时候,被分组的列,要出新在select 选拔列的末尾

*/

SELECT SUM(zmoney),zname FROM zhangwu GROUP BY zname

-- 对zname内容张开分组查询求和,可是如若支付

SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'

GROUP BY zname

ORDER BY getsum DESC

-- 对zname内容展开分组查询求和,可是如若支付, 展现金额超越4000

-- 结果集是分组查询后,再度开始展览筛选,不能够采纳where, 分组后再一次过滤,关键字 having

SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'

GROUP BY zname HAVING getsum>5000

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:01mysql数据库下载安装卸载及基本操作,mysql入门

关键词: