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子查询范围内的其他数据.
sql语句增删改查与子查询的更多相关文章
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...
- sql语句增删改查(转)
一.增:有4种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例 ...
- sql语句增删改查(方便你我Ta)
又自学,把SQL的一些常用语句复习了一遍. 整理如下: 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strde ...
- SQL 语句(增删改查)
一.增:有4种方法1.使用insert插入单行数据: --语法:insert [into] <表名> [列名] values <列值> 例:insert into Strden ...
- 安卓开发之sql语句增删改查2(利用谷歌封装好的API进行增删改查)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 安卓开发之sql语句增删改查
package com.lidaochen.phonecall; import android.content.Context; import android.database.sqlite.SQLi ...
- 详解数据库引擎与SQL语句增删改查(非常详细,带例)
数据库系统(DBMS): 专门负责数据管理的工具.增加数据.创建索引.建立索引之间的关联关系.更新索引...... 连接器:PHP要访问MySQL,可以通过API访问,也可以通过PHP的驱动,而那个驱 ...
- 数据库基本查询语句(SQL常用增删改查语句 简单复习 mark)
SQL常用增删改查语句 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) ...
- SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]
SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数 --创建表格 create table aa ( UserName varchar(50 ...
随机推荐
- jsp 使用Common-FileUpload组件文件上传及限制上传类型
1.将commons-fileupload-1.3.3.jar复制到Web应用的lib文件夹下,在WebRoot目录下创建limit.jsp页面,在该页面中添加一个文件域的表单,设置类型为 mu ...
- python基础教程(六)
学到这里已经很不耐烦了,前面的数据结构什么的看起来都挺好,但还是没法用它们做什么实际的事.从这一章节开始有点难度,需要好好理解. 基本语句的更多用法 使用逗号输出 >>> print ...
- 容器在 Weave 中如何通信和隔离?- 每天5分钟玩转 Docker 容器技术(65)
上一节我们分析了 Weave 的网络结构,今天讨论 Weave 的连通和隔离特性. 首先在host2 执行如下命令: weave launch 192.168.56.104 这里必须指定 host1 ...
- Linux下的I/O模型以及各自的优缺点
其实关于这方面的知识,我阅读的是<UNIX网络编程:卷一>,书里是以UNIX为中心展开描述的,根据这部分知识,在网上参考了部分资料.以Linux为中心整理了这篇博客. Linux的I/O模 ...
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
在git命令行下,执行以下命令完成环境的搭建: 1,npm install --global vue-cli 安装vue命令行工具 2,vue init webpack vue-demo 使用v ...
- linux c编程:初识进程与线程
p { margin-bottom: 0.25cm; line-height: 120% } (一) 认识进程 在Linux系统中,每一个进程都有自己的ID,就如同人的身份证一样.linux中有一个数 ...
- JS嵌套循环的典型练习题
1.斐波那契数列 ①分数 <script type="text/javascript"> var a = 1 var b = 1 var c for ...
- 个人作业3-个人总结(Alpha阶段)
一.个人总结 1.团队状况:这是我们第一次团队开发,小组成员的编程水平都相对一般,要在一周内完成一个APP是一个很大的考验.再加上冲刺的那周团队大半成员都在为一个比赛培训,时间就更少了,曾经有很多次我 ...
- 201521145048《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 1.2 List<Map.Entry<String, In ...
- Java课程设计-学生基本信息管理 201521123036
团队课程设计博客链接 团队博客链接 个人负责模块或任务说明 个人负责模块 任务说明 用户登录,注册 登录,注册,判断用户是否存在,添加用户 学生信息管理菜单 按钮,跳转相应界面,退出程序 学生信息添加 ...