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子查询范围内的其他数据.

时间: 2024-10-13 14:08:03

sql语句增删改查与子查询的相关文章

【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

数据库的创建和sql语句增删改查 1. 加载驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, name varchar(20), age integer ); 添加: insert into person(name, age) values('lisi', 19); 删除: delete from person where _id = 1; 修改: update person set name =

SQL 语句(增删改查)

一.增:有4种方法1.使用insert插入单行数据: --语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15') 注意:into可以省略:列名列值用逗号分开:列值用单引号因上:如果省略表名,将依次插入所有列2.使用insert select语句将现有表中的数据添加到已有的新表中 --语法:insert into <已有的

sql语句增删改查(方便你我Ta)

又自学,把SQL的一些常用语句复习了一遍. 整理如下: 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15') 1.2[将现有表数据添加到一个已有表]insert into <已有的新表> (列名) select <原表列名> from <原表名>例:insert into tongxu

SQL语句增删改查

一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdents (姓名,性别,出生日期) values ('王伟华','男','1983/6/15') 注意:如果省略表名,将依次插入所有列 2.使用insert,select语句将现有表中的 数据添加到已有的新表中 语法:insert into <已有的新表> <列名> select <原

SQL语句(增删改查)

一.增:有4种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15') 注意:into可以省略:列名列值用逗号分开:列值用单引号因上:如果省略表名,将依次插入所有列 2.使用insert select语句将现有表中的数据添加到已有的新表中 语法:insert into <已有的新表

基本sql语句--增删改查

增 insert into 表名 values (值1,值2...): 也可以指定所要插入的列: insert into 表名 (列1,列2...) values (值1,值2...); 注:一般MySQL的字符集是utf-8的,若我们使用的客户端默认的编码方式不是utf-8,则sql语句中有中文时会有编码错误: 可以通过先声明字符集进行规避该问题:set names gbk; 插入多条数据: INSERT INTO good (name,age,tel) VALUES ('张飞',79,'11

12.sql语句增删改查快速回顾

一.对数据库进行操作(DDL语句). 1.创建数据库. create database [if not exists] 数据库名称 character set 字符编码: 例:创建一个数据库,名字为db_1,字符编码为utf8 create database if not exists db_1 character set utf8; 2.查看数据库. 2.1查看所有数据库:show databases: 2.2 查看一个数据库的创建方式:show create database 数据库名称:

mysql表数据增删改查、子查询

//操作数据表中的记录 create table user2( id smallint unsigned primary key AUTO_INCREMENT, username varchar(20) not null, password varchar(20) not null, age tinyint not null default 10, sex boolean ) --insert-- insert user2 values(null,'孙千','123',25,1);//自增序列可

简单sql语句增删改查

查询所有 select * from 表名 插入数据 insert  into 表名  (字段1,字段2,字段3.......)  values  (值1,值2,值3.......) 修改数据 update 表名 set 字段1=值1 , 字段2=值2  where 字段=值 删除 DELETE FROM 表名称 WHERE 字段 = 值