SQL基础笔记
来源:互联网 发布:淘宝联盟的发单机器人 编辑:程序博客网 时间:2024/06/01 14:42
SQL基础笔记
编者:张永辉 2014年4月30日
参考:百度文库 <SQL基础教程(免费下载).pdf>
建议:使用SQLite,不用建立服务器即可练习语句。使用sqlitedbviewer.exe或SQLite Expert工具。
1 创建表单
语法:
CREATE TABLE "TableName"
(
"ColumnName_1" [Type] [NOT NULL] [UNIQUE] [CHECK(conditie)] [REFERENCES TableName0(ColumnName_x)],
...
"ColumnName_n" "Type",
[PRIMARY KEY(ColumnName_x)]
)
"Type" 取值:
1 NULL 空值
2 INTEGER 带符号的整型,具体取决有存入数字的范围大小
3 REAL 浮点数字,存储为8-byte IEEE 浮点数
4 TEXT 字符串文本
5 BLOB 二进制对象
"NOT NULL" 限定此列不能有NULL
"UNIQUE" 限定此列不能有重复项
"CHECK(conditie)" 限定此列需要满足conditie条件 如 age INTEGER CHECK(INTEGER>0) MySql无此项
"PRIMARY KEY(ColumnName_x)" 指定主键。一个表可以有多个主键,既是组合键
"REFERENCES TableName0(ColumnName_x)"
外来键。此列的值'在另外一张表TableName0中的ColumnName_x列'中必须要存在,用于资料参考完整性。
eg CREATE TABLE man
(
name char[50],
addr char[50],
age int
);
2 增加或更改表内容
1 增加一行内容
语法:
INSERT INTO "TableName"("ColumnName_1",... ,"ColumnName_n")
VALUES('"ColumnName_1_vlue"',... ,'"ColumnName_n_vlue"');
eg INSERT INTO man(name,age,addr)
VALUES('zyhui',18,'chengdu');
2 从另外一张表中导入多行
语法:
INSERT INTO "TableName"("ColumnName_1",... ,"ColumnName_n")
SELECT "ColumnName_1",... ,"ColumnName_n" FROM "TableName0"
[WHERE];
eg INSERT INTO man2(name,age,addr)
SELECT name,age,addr FROM man;
3 更改一个值
语法:
UPDATE "TableName"
SET "ColumnName_x"="ColumnName_x_vlue"
...
SET "ColumnName_x"="ColumnName_x_vlue"
[WHERE];
eg UPDATE man2
SET age=28
WHERE name='zyhui';
4 删除一个值
语法:
DELETE FROM "TableName"
[WHERE]; 无条件时会删除所有内容
eg DELETE FROM man
WHERE name='zyhui';
3 查询操作
语法:
SELECT [DISTINCT] "ColumnName_x",
FROM "TableName"
[WHERE] 条件
[ORDER BY]; 排序
"DISTINCT" 重复的项只出现一次
eg SELECT DISTINCT name
FROM man
WHERE age > 20;
配合WHERE的表达式:
语法: 条件选择
WHERE ['a' AND 'b'] ['a' OR 'b'] [()]
AND 与
OR 或
() 优先顺序
eg SELECT DISTINCT name
FROM man
WHERE age > 20 AND age < 100
语法: 在VLUE中选取
WHERE "ColumnName" IN('VLUE_1','VLUE_n')
eg SELECT DISTINCT name
FROM man
WHERE age IN(21,66);
语法: 区间选择
WHERE "ColumnName" BETWEEN 'VLUE_x' AND 'VLUE_xx'
eg SELECT *
FROM man
WHERE age BETWEEN 10 AND 100;
语法: 区间选择
WHERE "ColumnName" LIKE '模式'
'模式'
_ 下划线: 任意一个字符
% 百分号: 任意多个字符
eg SELECT *
FROM man
WHERE name LIKE '%ww%'; 包含ww的任意字符串
'A_K'; ASK A1K 符合, A12K不符合
配合ORDER BY的表达式:
语法:
ORDER BY "ColumnName_1" [ASC] [DESC] , ["ColumnName_X" [ASC] [DESC]]
[ASC] 从小到大排序,不写时的默认排序
[DESC] 从大到小排序
若有多列,先按ColumnName_1排序,相同的按ColumnName_X排序
eg SELECT *
FROM man
ORDER BY name ASC , age DESC;
4 函数
求和
语法:
SELECT SUM("ColumnName")
FROM "TableName";
eg SELECT SUM(age))
FROM man;
计数
语法:
SELECT COUNT("ColumnName")
FROM "TableName"
[WHERE]
eg1 SELECT COUNT(age)
FROM man;
WHERE age is not NULL; 计算非空的行
eg2 SELECT COUNT(DISTINCT age) 计算不用行的数量
FROM man;
- SQL基础笔记
- SQL学习基础笔记
- SQL 基础笔记
- 一.sql基础笔记
- SQL 基础笔记
- sql基础笔记
- SQL基础笔记
- SQL基础笔记
- SQL基础笔记
- SQL基础笔记
- SQL基础笔记-1
- sql操作基础学习笔记
- oracle10g sql查询基础笔记
- T-SQL基础 学习笔记
- SQL基础学习笔记【Forward】
- SQL学习笔记-基础学习
- 学习笔记-SQL基础语法
- 【个人笔记】SQL操作基础
- Access restriction: The type * is not accessible due to restrict
- Android XML解析、序列化demo
- dedecms织梦文章内容图片显示绝对路径修改
- <Android API Guide学习记录> -- Activities
- hbase常见错误
- SQL基础笔记
- 下面创建一个链接数据库的开发实例
- windows phone导航到WIFI BlueTool Cellular AirplaneMode设置界面
- 大整数相加链表实现(Add Two Numbers)
- Cocos2d-x layout (二)
- C++ const对象 和 C const对象的区别之一 —— 默认作用域
- 触摸屏驱动三部曲之硬件原理
- Hosts文件被覆盖了怎么恢复
- LCA HDU 4297 One and One Story