zoukankan      html  css  js  c++  java
  • 高级查询(一)

         1.修改表

              1.修改表名: ALTER TABLE 旧表名 RENAME[TO]  新表名;

              2.添加字段:ALTER TABLE 表名 ADD 字段名 数据类型[属性];

              3.修改字段:ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型[属性];

              4.删除字段:ALTER TABLE 表名 DROP 字段名;

         2.添加主键

              1.语法:ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);

         3.添加外键

              1.语法:ALTER TABLE 表名 ADD CONNSTRAINT 外键名

                            FOREIGN KEY(外键字段)

                             REFERENCES  关联表名(关联字段);

         4.插入单(多)条数据记录(和SQL Server相同,但是不能用select多列添加数据)

              1.INSERT INTO 表名[(字段名列表)] VALUES(值列表1),(值列表2),(值列表3);

              注意事项:1.字段名可以选择性的添加,在表名后面写入列名就可,如果省略的话默认依次插入所有字段

                                2.多个列表与多个值之间用逗号隔开

                                3.值列表和字段名列表必须一一对应

                                4.如果选择性的添加数据,则必须注意,not null必须添加值

         5.将查询结果插入新表(INSERT INTO与SQL Server相同,另外一个不同)

              1.语法:INSERT INTO 新表(字段1,字段2.....)

                            SELECT 字段1,字段2......

                            FROM 原表;

                             需要事先创建而且和插入字段的数据类型相符

              2.语法:CREATE TABLE 新表(SELECT 字段1,字段2......

                                                                 FROM 原表);

                             无需事先创建

         6.DML ——数据修改和删除(与SQL Server相同)

              1.修改语法:UPDATE 表名

                                   SET 字段1=值1,字段2=值2,.......,字段n=值n

                                    [WHERE 条件];

              2.删除语法:(1) DELETE FROM 表名 [WHERE 条件];

                                   (2)TRUNCATE TABLE 表名;

                   相同点:TRUNCATE语句和DELETE语句都会删除表内容,表结构及其字段、约束、所以保持不变

                   不同点:TRUNCATE语句删除之后重置自增列,速度比DELETE语句快

         7.DQL语句(与SQL Server语句相同)+LIMIT语句

              SELECT 字段名列表

              FROM 表名或视图

              [WHERE 查询条件]

              [GROUP BY 分组的字段名]

              [HAVING 条件]

              [ORDER BY 排序](ASC正序/DESC倒叙)

              [LIMIT[位置偏移量,]行数];

                   LIMIT:MYSQL查询中使用LIMIT字句限制结果集。   位置偏移量:开始位置 ;行数:每页显示几行

         8.聚合函数

              1.AVG()   返回某字段的平均值      2.COUNT()    返回某字段的行数

              3.MAX()   返回某字段的最大值     4.MIN()    返回某字段的最小值

              5.SUM()   返回某字段的和

         9.字符串函数

              1.CONCAT(str1,str1....strn)      字符串连接      SELECT CONCAT('MY','S','QL'); 返回:MYSQL

              2.INSERT(str,pos,len,newstr)    字符串替换     SELECT INSERT('这是SQL Server数据库',3,10,'MYSQL');返回:这是MYSQL数                                                                                                                                                                                         据库

              3.LOWER(str)      将字符串转为小写    SELECT LOWER('MYSQL');  返回:mysql

              4.UPPER(str)        将字符串转为大写    SELECT  UPPER('mysql');   返回:MYSQL

              5.SUBSTRING       字符串截取           SELECT SUBSTRING('JavaMySQLOracle',5,5);  返回:MySQL

         10.日期函数

              1.CURDATE()       获取当前日期     SELECT CURDATE();  返回:2020-4-29

              2.CURTIME()        获取当前时间      SELECT CURTIME();  返回:19:19:26

              3.NOW()              获取当前日期和时间   SELECT NOW();    返回:2020-04-29 19:19:26

              4.WEEK(date)     返回日期date为一年之中的第几周   SELECT WEEK(NOW());   返回:17

              5.YEAR(date)      返回日期date中的年份      SELECT YEAR(NOW());   返回:2020

              6.HOUR(time)      返回日期time中的小时      SELECT  HOUR(NOW());   返回:19

              7.MINUTE(time)   返回日期time中的分钟     SELECT   MINUTE(NOW()); 返回:19

              8.DATEDIFF(date1,date2)   返回日期参数date1和date2之间的天数   SELECT DATEDIFF(NOW(),2000-12-15);  返回:9563

              9.ADDDATE(date,n)    计算日期参数date加上n天之后的日期    SELECT ADDDATE(NOW(),5);   返回:2020-05-04

         11.数学函数

              1.CELT(x)     返回大于或者等于数值x的最小整数       SELECT CEIL(2.3)   返回:3

              2.FLOOR(x)  返回小于或者等于数值x的最大整数       SELECT FLOOR(2.3)   返回:2

              3.RNAD()     返回0~1间的一个随机数         SELECT RAND()    返回:0.55645453123123456(乘以相应数字则是相应数字之间                                      的随机数,可与FLOOR连用用以去除小数点)

         12.子查询

              1.子查询是一个嵌套在select、insert、update或delete语句或其他子查询中的查询

              2.子查询在where语句中的一般用法

                   子查询也就是在where后面比较时加个小括号,小括号里面的代码优先执行,就像数学运算一样

                  语法:select。。。from 表1 where 字段1 比较运算符(子查询)

              注意:将子查询和比较运算符联合使用时,必须保证子查询返回的值不能多于一个

         13.子查询替换表连接

              采用inner join多表连接

                   子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据

                    表连接更适合于查看多表的数据

         14.in子查询(in模糊查询)

                   当子查询结果返回不止一个的时候,使用运算比较符会出错,需要使用in子查询

                   常用in替代等于(=)的子查询;in后面的子查询可以返回多条记录

         15.not in子查询

                   与in子查询相反

  • 相关阅读:
    flex + bison multiple parsers
    Educational Codeforces Round 95 (Rated for Div. 2)
    python学习笔记 day20 序列化模块(二)
    python学习笔记 day20 常用模块(六)
    python 学习笔记 常用模块(五)
    python学习笔记 day19 常用模块(四)
    python学习笔记 day19 常用模块(三)
    python学习笔记 day19 常用模块(二)
    python学习笔记 day19 作业讲解-使用正则表达式实现计算器
    python学习笔记 day19 常用模块
  • 原文地址:https://www.cnblogs.com/yangshuwen/p/12804482.html
Copyright © 2011-2022 走看看