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 ...
随机推荐
- ReactNative环境搭建扩展篇——安装后报错解决方案
之前一篇写了<逻辑性最强的React Native环境搭建与调试>说了RN的安装,今天在这里做一个复盘,让我们能够更直观更深入的了解React Native(以下简称RN),这一篇重点来说 ...
- 以太坊系列之十六: 使用golang与智能合约进行交互
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...
- python 关于列表的增删改查及个别的命令
names = ["a","b","c","d","e","e","a ...
- node.js 下载安装及gitbook环境安装、搭建
最近需要gitbook看文档,于是各种百度,各种安装,很多都是无法正常安装完成的,比较纠结啊 最后,终于发现一个好用的,现分享一下地址(也是给自己做个记录): 1.node.js下载地址: http: ...
- 优化关键渲染路径CRP
什么是关键渲染路径? 从收到 HTML.CSS 和 JavaScript 字节到对其进行必需的处理,从而将它们转变成渲染的像素这一过程中有一些中间步骤 浏览器渲染页面前需要先构建 DOM 和 CSSO ...
- 散列表(拉链法与线性探测法)Java实现
package practice; import java.security.Principal; import java.util.Scanner; import edu.princeton.cs. ...
- UIButton和UIimageView
1.按钮控件使用的类是UIButton 点击按钮会触发某个事件 2.按钮控件的初始化 UIButton *button = [UIButton buttonWithType:UIButtonTypeC ...
- javascript中用setAttribute给元素添加colspan属性无效
先附上代码 var tr=document.createElement('TR'); var td=document.createElement('TD'); td.setAttribute('col ...
- datable 翻页事件处理
JQuery datatable插件,点下一页在点击事件无效问题 (2013-10-16 16:01:54) 转载▼ 分类: C# 在MVC的项目中,我利用jquery datatable 来实现 ...
- Linux cat /proc/meminfo 输出分析
$cat /proc/meminfoMemTotal: 2052440 kB //总内存MemFree: 50004 kB //空闲内存Buffers: ...