MySQL基础,基本SQL,SELECT查询详解定义
MySQL是⼀个⼩型开源的关系型数据库管理系统(RDBMS),使⽤SQL(结构化查询语⾔)语⾔进⾏数据库管理。
优点
1.开源
MySQL是开放源代码的数据库,任何⼈都可以获得源代码,修正缺陷。任何⼈能以任何⽬的来使⽤MySQL数据库
2.跨平台
MySQL能够实现跨平台操作,⽀持市⾯上各种主流系统,如Windows,UNIX,Linux,MacOS等操作系统。
3.开发成本低
任何⼈都能在MySQL的官⽹下载该软件,有些社区版本是可以免费试⽤的。即使有些付费功能,价格也相对于Oracle,DB2和SQL server这些商业软件,MySQL具有绝对的价格优势。
4.功能强⼤,使⽤⽅便
MySQL是⼀个真正的多⽤户、多线程的SQL数据库服务器。
使⽤SQL语⾔管理数据库
1. 数据库管理语句:
注:因为MySQL不严格区分⼤⼩写所以我就⽤驼峰命名法来记
1.Show DataBases(查看数据库列表)
2.Create Datebase aa (创建数据库aa)
3.Drop Database aa (删除数据库aa)
4.Show Engines (查看当前版本数据库⽀持的引擎类型)复制代码
2.数据表的基本操作:
创表,主键、外键、唯⼀、不能为空等约束,例如部门表和员⼯表:
CREATE TABLE dept
(
id INT(11) PRIMARY KEY,      //创建主键约束
name VARCHAR(22)  UNIQUE    //创建唯⼀约束
mysql语句分类
)
CREATE TABLE employee
(
id INT(11) PRIMARY KEY AUTO_INCREMENT,  //设置⾃动递增
name VARCHAR(25) Not Null,              //创建⾮空约束
deptId INT(11),
sex char DEFAULT '男',                //指定默认值为男
CONSTRAINT employee FOREIGN KEY(deptId) REFERENCES dept(id)  //创建外键约束
)
DESCRIBE employee  //查看表的基本结构
DESC employee      //同上
SHOW CREATE TABLE employee  //查看表的详细信息复制代码
3.修改数据表:
以上表为例
ALTER TABLE dept RENAME deptment            //修改dept表名为deptment
ALTER TABLE employee MODIFY sex VARCHAR(30)  //修改employee表的sex字段类型为VARCHAR
ALTER TABLE employee ADD salary FLOAT NOT NULL  //给employee表新增字段salary 类型float不能为空复制代码
ALTER TABLE employee ADD salary FLOAT FIRST    //在employee表的第⼀列新增字段
ALTER TABLE employee ADD salary FLOAT AFTER name    //在employee表的neme字段后⾯新增字段
ALTER TABLE employee DROP salary                // 在employee表中删除字段
ALTER TABLE employee DROP FOREIGN KEY employee  //删除employee表的外键约束复制代码
4.删除数据表:
DROP TABLE deptment,employee  //同时删除没有被关联的两张表deptment、employee
酷信源码有什么好的地方
注:想删除有被关联外键的主表必须先解除外键关联然后才能删除
原因是如果直接删除了主表会破坏数据的完整性复制代码
MySQL的数据类型和运算符
1.整形
数据类型存储要求有效取值范围⽆符号取值范围
TINYIN        1字节          -128 - 127                                  0 - 255
SMALLINT      2字节          -32768 - 32767                              0 - 65535
MEDIUMINT    3字节          -8388608 - 8388607                          0 - 16777215
INT(INTEGER)  4字节          -2147483648 - 2147483647                    0 - 4294967295
BIGINT        8字节          -9223372036854775808 - 9223372036854775807  0 - 18446744073709551615复制代码
2.浮点型
类型名称说明存储需求
FLOAT            单精度浮点数        4个字节
DOUBLE            爽精度浮点数        8个字节
DECIMAL(M,D),DEC  压缩的“严格”定点数  M+2个字节复制代码
3.⽇起时间类型
类型名称⽇期格式⽇期范围存储需求
YEAR        YYYY                    1901-2155                1字节
TIME        HH:MM:SS                -838:59:59 - 838:59:59    3字节
DATE        YYYY-MM-DD              1000-01-01 - 9999-12-31  3字节
DATETIME    YYYY-MM-DD HH:MM:SS      1000-01-01 00:00:00  -    8字节
9999-12-31 23:59:59
TIMESTAMB  YYYY-MM-DD HH:MM:SS      1970-01-01 00:00:01  -    4字节
2038-01-19 03:14:07    复制代码
4.字符串类型
类型名称说明存储需求
CHAR(M)        固定长度⾮⼆进制字符串    M字节,1<=M<=255
VARCHAR(M)      变长⾮⼆进制字符串        L+1字节再次L<=M且1<=M<=255 复制代码常见运算符
1.算数运算符
运算符作⽤
+              加法运算
-              减法运算
*              乘法运算
/              除法运算,返回商
%              求余运算,返回余数复制代码
2.⽐较运算符
运算符作⽤
=                等于
<=>              安全等于(可以⽐较NULL)
发现读秀百链续数据库是什么<>(!=)            不等于
<=                ⼩于等于
>=                ⼤于等于
<                ⼩于
>                ⼤于
IS NULL          判断是否为NULL
IS NOT NULL      判断是否不为NULL
LEAST            当有多个参数时,返回最⼩值
GREATEST          当有多个参数时,返回最⼤值
BWTWEEN AND      判断⼀个值是否在两个值之间
ISNULL            判断是否为NULL
IN                判断⼀个值是IN列表中的任意⼀值
NOT IN            判断⼀个值不是IN列表中任意⼀个值
LIKE              通配符匹配
REGEXP            正则表达式匹配复制代码
3.逻辑运算符
运算符作⽤
NOT 或者 !        逻辑⾮
AND 或者 &&      逻辑与
OR  或者||        逻辑或
XOR              逻辑亦或复制代码
4.聚合函数
主要⽤于某列值的和,平均值,记录数等就需要⽤到聚合函数
函数说明
AVG()              返回平均值
COUNT()            返回记录的⾏数
用数字组词语COUNG()            返回⼀列中值的个数
MAX()              返回某列的最⼤值
MIN()              返回某列的最⼩值
SUM()              返回某列的和复制代码
SELECT(查询)语句详解
SELECT  属性列表  FROM  表名  [WHERE  条件表达式]  [GROUP  BY  属性名  [HAVING  条件表达式]]  ORDER  BY属性名  [ASC|DESC]
现有表
(1)学⽣表:(学号,姓名,性别,年龄,系),student(sno,sname,ssex,sage,sdept)
(2)课程表:(课程号,课程名,先⾏基础课名),course(cno,cname,cpno)
(3)学⽣选课表:(学号,课程号,成绩),sc(sno,cno,grade)
sno          sname      ssex        sage        sdept
1            刘敏⼥            19          计算机
2            周松男            21          计算机
parse的用法
3            张明男            20          经贸
4            孟欣⼥            21          信管
cno          cname      cpno
1            数据库      4
2            操作系统    3
3            信息系统    null
4            数据结构    2
sno          cno        grade
1            1          89php正则验证字符串全是数字
1            2          97
1            3          67
2            1          78
2            2          90
1.单表查询
select cno, cname from course  //查询表中部分字段
select * from sutdent          //查询表所有记录(如果表字段多,查*会导致查询的数据量过⼤会⼤⼤降低传输效率,除⾮需要查询所有字段,尽量不要⽤*)select sno, sname, year(now())-sage  //查询经过计算的值(学⽣出⽣年),year(now())为函数嵌套
select distinct sdept from student  //查询并去重复关键字distinct
select * from student where ssxe = '⼥'  //带条件的where字句查询
select * from student where sage between 20 and 25;  //查询两个值之间的数⽤ between 0 and 9
select * from student where sage in (18,20,23)    //查询数据集合中包含的值⽤in,反之则⽤ not in
select * from student where sname like '张%'    //查询姓"张"的学⽣('张%'的意思是以张开头)
select * from student where sname like '_敏%'  //查询第⼆个字段为‘敏’的学⽣信⼼(_表⽰有⼀个占位符的通配符)
select * from course where cpno is  null    // 查询先⾏课为null的课程,反之则⽤  not null
select * from sc where cno =1 and grade >= 80  //多条件查询时and作和or作为条件连接和逻辑运算符来使⽤
select * from sthdent where sdept='计算机' or sdept = '经贸系'  //同上
select * from student order by sage desc    //order by排序字句  desc  降序
select * from student order by sage desc ,sno desc  //先按年龄排序,如果相同则按学号排序
复制代码
2.聚合函数
select count(*) from student where sdept = '计算机'  //查询计算机系的学⽣⼈数
select count(distinct sno)      //查询选修了课程的⼈数使⽤distinct 去掉了重复项
select avg(sags) from student where sdept = '计算机'  //查询计算机系的平均年龄
select max(grade) from sc where cno =1      //查询选修1号课程的最⾼分
复制代码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。