zoukankan      html  css  js  c++  java
  • sql语句增删改查与子查询

    修改表

    修改表

    语法:

    Alter table <旧表名> rename [ TO] <新表名>;

    例子:Alter table `demo01` rename `demo02`;

    添加字段

    语法:

    Alter Table 表名 ADD 字段名  数据类型  [属性];

    例子:Alter Table `Demo02` ADD `passWord`  varchar(50) not null;

    修改字段

    语法:

    Alter table 表名 change  原字段名  新字段名  数据类型 [属性];

    %修改字段名%

    Alter Table  `Demo02`  change  `name`  `username`  char(10)  NOT  NULL;

     删除字段

    删除字段是将数据表中的某个字段从表中移除:

    语法:  ALTER TABLE  表名  DROP 字段名;

    添加主外键

    1.添加主键约束

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

    2.添加外键约束

    语法: ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 关   联表名(关联字段);

    DML语句回顾

     插入数据记录

    1.插入单行数据

    语法: INSERT INTO 表名 [(字段名列表)]  VALUES (值列表);

    2.插入多行数据

    语法:INSERT INTO 新表 (字段名列表) VALUES (值列表1), (值列表2), ......, (值列表n);

    注意:在是INSERT语句插入记录时,如果不包含字段名称,VALUES后值列表中各字段的顺序必须和表定义中各字段的顺序相同,如果表结构变了 (如执行了添加数据操作) 则值列表也要变化,否则会出现错误.如果指定了插入的字段名,就会避免这个问题,因此,建议在插入数据时指定具体字段名.

    3.将查询结构插入到新表

    语法1:    

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

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

    FROM 原表;

    语法2:

    CREATE TABLE 新表 (SELECT 字段1,字段2, ........FROM 原表);

     更新数据记录

    语法:  UPDATE 表名 SET 字段1=值1,字段2=值2,........字段n=值n [WHERE 条件];

     删除数据记录

    语法: DELETE  FROM 表名  [WHERE条件];

    语法: TRUNCATE TABLE 表名;

    数据查询

    DQL语句回顾

    SQL Server中数据查询语句:

    语法:        SELECT<字段名列表>

    FROM<表名或视图>

    [WHERE <查询条件>]

    [GROUP  BY  <分组的字段名>]

    [HAVING <条件>]

    [ORDER BY  <排序的字段名> [ASC 或  DESC]];

    LIMIT子句

    语法:        SELECT<字段名列表>

    FROM<表名或视图>

    [WHERE <查询条件>]

    [GROUP  BY  <分组的字段名>]

    [ORDER BY  <排序的字段名> [ASC 或  DESC]]

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

    其中:1.位置偏移量指从结果集中第几条数据开始显示(第一条记录的位置偏移量是0,第2条   是1,....),当省略时从第一条记录开始显示.

    2.行数值显示记录的条数

    常用函数

    常用聚合函数:

    AVG()                         

    返回某字段的平均值

    COUNT()

     返回某字段的行数

    MAX()

    返回某字段的最大值

     MIN( )

    返回某字段的最小值

    SUM( )

    返回某字段的和

    函数名

    作用

    常用的字符串函数

    函数名

    作用

    举例

    CONCAT(str1,str2,...,strn)

    连接字符串str1,str2,...,strn为一个完整字符串

    SELECT CONCAT(‘My’,’S’,’QL’);

    返回:MySQL

    INSERT(str,pos,len,newstr)

    将字符串str从pos位置开始,len个字符长的子串替换为字符串newstr

    SELECT INSERT(‘这是SQL SERVER数据库’,3,10,’MySQL’);

    返回:这是MySQL数据库

    LOWER(str)

    将字符串str中所有字符变为小写

    UPPER(str)

    将字符串str中所有字符串变为大写

    SELECT UPPER(‘MySQL’);

    返回: MYSQL

    SUBSTRING(str,num,len)

    返回字符串str的第num个位置开始长度为len的子字符串

    3.时间日期函数

    函数名

    作用

    举例

    CURDATE()

    获取当前日期

    SELECT CURDATE();

    CURTIME()

    获取当前时间

    NOW()

    获取当前日期和时间

    WEEK(date)

    返回日期date为一年的第几周

    YEAR(date)

    返回日期date的年份

    HOUR(time)

    返回时间Time的小时值

    MINUTE(time)

    返回时间Time的分钟值

    DATEDIFF(date1,date2)

    返回日期参数date1和date2之间相隔的天数

    ADDDATE(date,n)

    计算日期参数date加上n天后的日期

    4.数字函数

    函数名

    作用

    举例

    CEIL(x)

    返回大于或等于数值x的最小整数

    SELECT CEIL(2.3)

    返回:3

    FLOOR(x)

    返回小于或等于数值x的最大整数

    RAND()

    返回0~1间的随机数

     子查询

     简单子查询

    语法:SELECT ...FROM 表1 WHERE 字段1 比较运算符(子查询);

    使用AS关键字,符合ANSI标准

     SELECT 字段列表 FROM 表名 AS 表的别名;

    使用空格,简便的方法

     SELECT 字段列表 FROM 表名 表的别名;

     IN和NOT IN 子查询

     IN子查询

    使用子查询 当返回结果有多条记录时,则把条件的 =改为 in

    IN子查询后面可跟随返回多条记录的子查询,用于检测某字段的值是否存在于某个范围中.

     NOT IN子查询

    不在IN子查询范围内的其他数据.

  • 相关阅读:
    clone对象
    Windows下swoole扩展的编译安装部署
    PHP备忘录
    Linux文档的压缩与打包
    Linux系统启动过程
    Linux虚拟机安装
    MongoDB自动增长
    MongoDB固定集合(Capped Collections)
    Activating Google Cloud Storage
    Downloading the Google Cloud Storage Client Library
  • 原文地址:https://www.cnblogs.com/invincibleDeng/p/7605111.html
Copyright © 2011-2022 走看看