数据库-Sql语句

?关键字

?CREATE

创建表

create table 表名称(字段1 类型,字段2 类型);   

create table hero_table ( id int,name varchar(10));  

创建表并增加约束

CREATE TABLE 表名称 (
      字段1 类型1 约束1 约束1,
      字段2 类型2 约束2 约束2 
);
完整性约束条件表
约束条件说明
PRIMARY KEY标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY标识该属性为该表的外键,是与之联系的某表的主键
NOT NULL标识该属性不能为空
UNIQUE标识该属性的值是唯一的
AUTO_INCREMENT标识该属性的值自动增长,这是MySQL的SQL语句的特色
DEFAULT为该属性设置默认值

⭐例子

CREATE TABLE hero_table4 (
      id INT(11) NOT NULL PRIMARY KEY,
      NAME VARCHAR(10) NOT NULL UNIQUE KEY 
)
?使用create复制表

创建表只复制表结构及约束,但不复制数据

CREATE TABLE 复制出的表 LIKE 原表

创建表复制表结构及数据,但不复制约束

CREATE TABLE 复制出的表 AS SELECT * FROM 原表

?SELECT
SELECT 列名称 FROM 表名称

SELECT * FROM 表名称

⭐例子:

SELECT Name,Age FROM Persons
IdNameAgeAddress
1li20Guanghzou
2wang21Guanghzou

?结果

NameAge
li20
wang21

查询条数

select count(*) from 表名称

根据条件查询条数

select count(*) from 表名称 where 条件

Oracle 对表格添加rownum(有时用作对数据分页显示)

SELECT rownum,t. * FROM student t

⭐例子:

SELECT rownum,t. * FROM student t where sno >-(n-1)*10+1 and sno <-n*1 order by sno;

?WHERE
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

下面的运算符可在 WHERE 子句中使用:

操作符描述
=等于
<>(!=)不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式

⭐例子

SELECT * FROM Persons WHERE Address='Guanghzou'
IdNameAgeAddress
1li20Guanghzou
2wang21Guanghzou
3huang19Beijing

?结果

IdNameAgeAddress
1li20Guanghzou
2wang21Guanghzou

注意:WHERE后面不能放聚合函数sum()等

?UPDATE
UPDATE 表名 SET1 =1,列2=2
?INSERT
INSERT INTO 表名称 VALUES (1,2,....)

INSERT INTO table_name (1,2,...) VALUES (1,2,....)

⭐例子:

INSERT INTO table1(id, Name, Address) VALUES(2, yuan, 'Beijing')
IdNameAgeAddress
1li20Guanghzou

?结果

IdNameAgeAddress
1li20Guanghzou
2yuanBeijing

?DELETE
DELETE from 表名称 where 条件

?DROP

创建表DROP INDEX 命令删除表格中的索引。

ALTER TABLE table_name DROP INDEX index_name

创建表DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除):

DROP TABLE 表名称

创建表DROP DATABASE 语句用于删除数据库:

DROP DATABASE 数据库名称

创建表 TRUNCATE TABLE 命令(仅仅删除表格中的数据):

TRUNCATE TABLE 表名称

?ALTER

创建表添加关键字

ALTER TABLE 表名称 ADD 字段名 字段约束

ALTER TABLE 表名称 ADD COLUMN 字段名 字段约束

创建表添加索引

ALTER TABLE 表名称 ADD INDEX 索引名称 (字段名)

创建表添加主键

ALTER TABLE 表名称 ADD PRIMARY KEY (字段名)

ALTER TABLE 表名称 ADD UNIQUE KEY (字段名)

创建表添加外键约束

 ALTER TABLE 需要添加外键表名称 ADD FOREIGN KEY 外键名(设为外键的字段) REFERENCES 被添加外键表名称(设为被添加外键的字段)

创建表修改字段类型时要注意字段类型的兼容性及精度,除非该列全部数据为null

ALTER TABLE 表名称 CHANGE COLUMN NAME 修改字段 修改为字段类型

ALTER TABLE 表名称 MODIFY COLUMN 修改字段 修改为字段类型

创建表修改与删除表中default

ALTER TABLE 表名称 ALTER COLUMN 字段名 SET DEFAULT  '修改的值'

ALTER TABLE 表名称 ALTER COLUMN 字段名 DROP DEFAULT

创建表禁用和启用约束

ALTER TABLE 表名称 DISABLE KEYS

ALTER TABLE 表名称 ENABLE KEYS

创建表删除表字段、主键、索引、外键约束

//删除表字段
ALTER TABLE 表名称 DROP COLUMN 字段名
//删除主键
ALTER TABLE 表名称 DROP PRIMARY KEY
//删除索引
ALTER TABLE 表名称 DROP INDEX 索引的字段名
//删除外键约束
ALTER TABLE 表名称 DROP FOREIGN KEY 外键的字段名

创建表修改表名

ALTER TABLE 修改前表名称 RENAME 修改后表名称

?TRUNCATE

删除表(与drop的区别:truncate只删除数据不删除表的结构(定义),释放空间)

truncate table 表名称;
?DISTINCT

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。

SELECT DISTINCT Company FROM Orders

可以与COUNT搭配使用

SELECT COUNT ( DISTINCT name) FROM table WHERE name LIKE '张%'
?AND
SELECT name FROM table WHERE id = "1" AND teacher = "a"

注意:AND字符两边的字段不能一样,否则查询就会查不到结果
栗子:当要查询学过课程编号为01和02的学生姓名

SELECT name FROM table WHERE c_id = "01" AND c_id = "01"

?SQL Aggregate 函数

?AVG() - 返回平均值
?COUNT() - 返回行数
?FIRST() - 返回第一个记录的值
?LAST() - 返回最后一个记录的值
?MAX() - 返回最大值
?MIN() - 返回最小值
?SUM() - 返回总和

?SQL Scalar 函数

?UCASE() - 将某个字段转换为大写
?LCASE() - 将某个字段转换为小写
?MID() - 从某个文本字段提取字符,MySql 中使用
?SubString(字段,1,end) - 从某个文本字段提取字符
?LEN() - 返回某个文本字段的长度

mysql数据库中用LENGTH()

SELECT LENGTH("string")
SELECT LENGTH(NAME) FROM items

注意:当字段为NULL时返回值为NULL

?ROUND() - 对某个数值字段进行指定小数位数的四舍五入
?NOW() - 返回当前的系统日期和时间
?FORMAT() - 格式化某个字段的显示方式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值