- ?
数据库操作中你必须要会的SQL语句 增删改查一样都不能少
光明
展开
CREATE TABLE
CREATE TABLE用来创建一个表
//创建一个表,表的名称为table_name,该表有三列,列名分别为column_1,column_2,column_3.列中的数据类型分别为整形,文本,整形
创建表语法举例如下:
举例INSERT INTO
INSERT INTO用于向列中插入值
//分别向列id, name, age中插入 1, 'Justin Bieber', 21 insert into table_test (id,name,age) values(1,"Justin Bieber",21);
//插入多条数据
1、MySQL数据库:
mysql插入2、oracle数据库:
oracle插入方式UPDATE
用于修改表中的数据
语法 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
举例:修改id=1这一行的age列的数据为22 SQL如下:
UPDATE table_test SET age = 22 WHERE id = 1;
ALTER TABLE
修改表,用于增加,修改,删除列
例如:ADD COLUMN添加一个列 ALTER TABLE table_test ADD COLUMN address TEXT;
例如:DROP COLUMN删除一个列 ALTER TABLE table_test DROP COLUMN address ;
DELETE
删除表中的行
例如:IS NULL表示值是NULL或者不存在,删除age列中值不存在的行 DELETE FROM table_test WHERE age IS NULL;
SQL查询 DISTINCT 过滤重复的数据 语法如下:
WHERE
通过各种条件定位到具体的数据
where语法操作符例如:统计age大于24的数据 SELECT * FROM table_test WHERE age >24;
LIKE
模糊匹配
举例:_通配一个字符 SELECT * FROM table_test WHERE name LIKE 'Mar_y';
举例:%通配任意多个字符 SELECT * FROM table_test WHERE name LIKE '%Bieber%';
BETWEEN 匹配一个范围
例如:查到age范围在23到30之间的数据 SELECT * FROM table_test WHERE age BETWEEN 23 and 30;
AND 逻辑与
例如:查到age范围在23到30之间的数据 SELECT * FROM table_test WHERE age >= 23 and age <= 30;
OR逻辑或
例如:查到age范围不在在23到30之间的数据 SELECT * FROM table_test WHERE age <= 23 or age >= 30;
等同于 SELECT * FROM table_test WHERE age not BETWEEN 23 and 30;
ORDER BY
例如:依据某一列进行排序,ASC是顺序排序,DESC是逆序排序。 SELECT * FROM table_test ORDER BY age ASC;
COUNT()
COUNT()是最快的方式,统计一张表总共的行数。COUNT()函数的参数是一个列的名称,统计整个表所有的行数时,采用通配符*;
例如:统计整个表的行数 SELECT COUNT(*) FROM table_test ;
例如:统计age为25的行数 SELECT COUNT(*) FROM table_test WHERE age= 25;
GROUP BY
GROUP BY <列名>将一列中相同值的列分成一组
例如:按照age进行分组,并统计每组元素的个数 SELECT age, COUNT(*) FROM table_test GROUP BY age;
SUM()
SQL通过SUM()可以很容易统计一列的和
例如:计算age一列的和 SELECT SUM(age) FROM table_test ;
MAX()
例如:MAX()函数可以找到一列中的最大值 SELECT MAX(age) FROM table_test ;
MIN()
MIN()函数可以找到一列中最小的值,用法与MAX()相同
AVG()
AVG()函数计算一列的平均值,用法与MAX()相同
ROUND() 设定数值到指定的精度
举例:设定计算的平均值精度精确到小数点后两位 SELECT ROUND(AVG(age), 2) FROM table_test;
PRIMARY KEY
在使用CREATE TABLE时为id添加PRIMARY KEY,PRIMARY KEY是一张表中每一行独一无二的标识,该表将id作为主键。通过主键将多个表联系起来。
CREATE TABLE table_test (id INTEGER PRIMARY KEY, name TEXT);
- ?
那些经常需要用到的Sql语句语法汇总-大数据
崔虔纹
展开
489034603
最近总是在QQ上遇到有朋友问一些SQL的语句语法,对于初学大数据的小伙伴来说,可能以前没有学过数据库,下面是整理的一些SQL的语句语法,可能在其它地方上也有,凑合看看
下列语句部分是Mssql语句,不可以在access中使用。 SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库 drop database dbname
3、说明:备份sql server --- 创建 备份数据的 device USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2 from tab_old definition only
5、说明:删除新表drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idxname on tabname(col.) 删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:
创建视图:create view viewname as select statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、说明:几个高级查询运算词
A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接
A、left outer join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 sql: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。 其次,大家来看一些不错的sql语句
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4、说明:子查询(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
5、说明:显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、说明:外连接查询(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、说明:在线视图查询(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a >1;
8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2
9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)
10、说明:两张关联表,删除主表中已经在副表中没有的信息
上面这些语句语法是大数据访问数据库经常要用到的,需要熟透到心中,数据越大,进行查表的语句就应该越简单,才可以加快查询速度。。
注意:想学习大数据技术的伙伴请加第一张图片下方的学习交流群,群里有大量视频可自行下载。大家关注小编可以获取更多新消息的哦!!
- ?
【数据库】MySQL常见SQL语句
Steven
展开
没有伞的孩子,必须努力奔跑!
MySQL 是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。
MySQL默认超级管理员是root,一般在安装MySQL的时候会提示设置root密码。
前期的MySQL不支持存储过程,在MySQL5.0之后,设置存储引擎ENGINE=INNODB才能支持存储过程。
DDL—数据定义语言(Create,Alter,Drop,DECLARE)
DML—数据操纵语言(Select,Delete,Update,Insert)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
常见SQL语句
1、创建用户创建用户一般都是登录超级管理员root,进行创建之后分配权限。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username - 你将创建的用户名。host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%。password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。
2、授权
GRANT privileges ON databasename.tablename TO 'username'@'host';
privileges - 用户的操作权限,如SELECT , INSERT , UPDATE,DELETE 等.如果要授予所的权限则使用ALL。databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示, 如.(对所有数据库所有表相应权限),datebasename.(对指定数据库所有表相应权限)。
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
3、设置与更改用户密码
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登录用户用:
SET PASSWORD = PASSWORD("newpassword");
4、撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
注意: 假如你在给用户’username’@’%’授权的时候是这样的(或类似的):GRANT SELECT ON testDB.user TO ‘username’@’%’, 则在使用REVOKE SELECT ON . FROM ‘username’@’%’;命令并不能撤销该用户对testDB数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON . TO ‘username’@’%’;则REVOKE SELECT ON testDB.user FROM ‘username’@’%’;命令也不能撤销该用户对testDB数据库中user表的Select 权限。
具体信息可以用命令SHOW GRANTS FOR ‘username’@’%’; 查看。
5、删除用户
DROP USER 'username'@'host';
6、创建数据库-databasename - 数据库名
CREATE DATABASE databasename;
7、删除数据库-databasename - 数据库名
DROP DATABASE databasename;
8、修改数据库名
alter database 旧名称 modify name = 新名称
9、备份sql server
创建 备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'e:\mysql\test.dat'开始 备份 BACKUP DATABASE databasename TO testBack语句1:打开系统数据库master,或者说在系统数据库下操作。
语句2:定义备份逻辑设备名testBack,类型disk,路径为e:\mysql\test.dat。
语句3:备份数据库databasename到设备testBack上。
10、创建新表
CREATE TABLE tablename(col1 type1 [not null] [primary key],col2 type2 [not null],..);
根据已有的表创建新表:
A:CREATE TABLE tab_new like tab_old (使用旧表创建新表) B:CREATE TABLE tab_new as select col1,col2… from tab_old definition only #用户表 CREATE TABLE IF NOT EXISTS t_user( u_id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '编号', u_phone BIGINT NOT NULL COMMENT '账号-手机号', u_passwd VARCHAR(100) NOT NULL COMMENT '密码,4-20字符,MD5加密', u_regtime BIGINT UNSIGNED NOT NULL COMMENT '注册时间,时间戳', u_check_uid BIGINT UNSIGNED COMMENT '用户类型审核人员ID', PRIMARY KEY(u_id) COMMENT '主键', UNIQUE KEY(u_phone) COMMENT '唯一键', FOREIGN KEY(u_check_uid) REFERENCES t_user(u_id) ON DELETE CASCADE, KEY index_regtime(u_regtime) COMMENT '注册时间-索引' )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '用户表';
11、删除新表
DROP TABLE tablename
12、增加一个列
ALTER TABLE tablename ADD COLUMN col TYPE
注意:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
13、添加主键
ALTER TABLE tablename ADD PRIMARY KEY(col)
14、删除主键
ALTER TABLE tablename DROP PRIMARY KEY(col)
15、创建索引
CREATE [UNIQUE] INDEX idxname ON tablename(col….)
16、删除索引
DROP INDEX idxname
17、创建视图
CREATE VIEW viewname AS SELECT statement
18、删除视图
DROP VIEW viewname
19、几个简单的基本的SQL语句
查询:
SELECT * FROM tablename WHERE 范围
插入:
INSERT INTO tablename(field1,field2) VALUES(value1,value2)
删除:
DELETE FROM tablename WHERE 范围
更新:
UPDATE tablename SET field1=value1 WHERE 范围
查找:
SELECT * FROM tablename WHERE field1 LIKE '%value1%'
排序:
SELECT * FROM tablename ORDER BY field1,field2 [DESC]
总数:
SELECT COUNT(field1) AS totalcount FROM tablename
求和:
SELECT SUM(field1) AS sumvalue FROM tablename
平均:
SELECT AVG(field1) AS avgvalue FROM tablename
最大:
SELECT MAX(field1) AS maxvalue FROM tablename
最小:
SELECT MIN(field1) AS minvalue FROM tablename
20、几个高级查询运算词A: UNION 运算符
UNION运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
21、使用外连接
A、LEFT OUTER JOIN:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
B:RIGHT OUTER JOIN:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:FULL OUTER JOIN:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。22、复制表(只复制结构,源表名:a 新表名:b) (Access可用)
方法一:
SELECT * INTO b FROM a WHERE 11
方法二:
SELECT top 0 * INTO b FROM a
23、拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
INSERT INTO b(a, b, c) SELECT d,e,f FROM b;
24、跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
INSERT INTO b(a, b, c) SELECT d,e,f FROM b IN ‘具体数据库' WHERE 条件
25、子查询(表名1:a 表名2:b)
SELECT a,b,c FROM a WHERE a IN (SELECT d FROM b ) 或者: SELECT a,b,c FROM a WHERE a IN (1,2,3)
26、between的用法,between限制查询数据范围时包括了边界值,not between不包括
SELECT * FROM table1 WHERE TIME BETWEEN time1 AND time2 SELECT a,b,c, FROM table1 WHERE a NOT BETWEEN 数值1 AND 数值2
27、in 的使用方法
SELECT * FROM table1 WHERE a [NOT] IN (‘值1','值2','值4','值6')
28、两张关联表,删除主表中已经在副表中没有的信息
DELETE FROM table1 WHERE NOT EXISTS ( SELECT * FROM table2 WHERE table1.field1=table2.field1)
29、四表联查问题
SELECT * FROM a LEFT INNER JOIN b ON a.a=b.b RIGHT INNER JOIN c ON a.a=c.c INNER JOIN d ON a.a=d.d WHERE .....
30、日程安排提前五分钟提醒
SELECT * FROM 日程安排 WHERE DATEDIFF('minute',f开始时间, getdate())>5
31、一条sql 语句搞定数据库分页(不推荐)
SELECT top 10 b.* FROM (SELECT top 20 主键字段,排序字段 FROM 表名 ORDER BY 排序字段 DESC) a,表名 b WHERE b.主键字段 = a.主键字段 ORDER BY a.排序字段
32、前10条记录
SELECT top 10 * form table1 WHERE 范围
33、随机取出10条数据
SELECT top 10 * FROM tablename ORDER BY newid()
34、随机选择记录
SELECT newid()
35、删除重复记录
DELETE FROM tablename WHERE id NOT IN (SELECT MAX(id) FROM tablename GROUP BY col1,col2,...)
36、列出数据库里所有的表名
SELECT NAME FROM sysobjects WHERE TYPE='U'
37、列出表里的所有的
SELECT NAME FROM syscolumns WHERE id=object_id('TableName')
38、收缩数据库
重建索引 DBCC REINDEX DBCC INDEXDEFRAG收缩数据和日志 DBCC SHRINKDB DBCC SHRINKFILE39、压缩数据库DBCC shrinkdatabase(dbname)40、转移数据库给新用户以已存在用户权限exec sp_change_users_login ‘update_one‘,‘newname‘,‘oldname‘41、检查备份集RESTORE VERIFYONLY from disk=‘E:\dvbbs.bak‘42、修复数据库ALTER DATABASE [dvbbs] SET SINGLE_USER GO DBCC CHECKDB(‘dvbbs‘,repair_allow_data_loss) WITH TABLOCK GO ALTER DATABASE [dvbbs] SET MULTI_USER GO
- ?
怎么利用SQL语句查询数据库中具体某个字段的重复行
韵晓风
展开
可用group by……having来实现。
可做如下测试:
1、创建表插入数据:
create table test(id int,name varchar(10))insert into test values (1,'张三')insert into test values (2,'李四')insert into test values (3,'张三')insert into test values (4,'王五')insert into test values (5,'赵六')
其中name是张三的有两行,也就是重复行。
2、执行sql语句如下:
select * from test where name in (select name from test group by name having COUNT(*)>1)
结果如图:
(本文内容由百度知道网友badkano贡献)
- ?
数据库sql语句的基础使用,学习数据库的关键一步
岑卿
展开
创建数据库
create database 数据库名;create database 数据库名 character set 字符集;
查看某个数据库的定义的信息:
show create database 数据库名;
删除数据库
drop database 数据库名称;
切换数据库:
use 数据库名;
查看正在使用的数据库:
select database();
创建表
create table 表名(字段名 类型(长度) 约束,字段名 类型(长度) 约束);
查看数据库中的所有表:
格式:show tables;
查看表结构:
格式:desc 表名;
修改表结构格式:
为分类表添加一个新的字段为 分类描述 varchar(20)ALTER TABLE sort ADD sdesc VARCHAR(20);
alter table 表名 modify 列名 类型(长度) 约束;作用:修改表修改列的类型长度及约束.
alter table 表名 change 旧列名 新列名 类型(长度) 约束;作用:修改表修改列名.
alter table 表名 drop 列名;作用:修改表删除列.
rename table 表名 to 新表名;作用:修改表名
alter table 表名 character set 字符集;作用:修改表的字符集
插入记录
insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..); -- 向表中插入某些列insert into 表 values (值1,值2,值3..); --向表中插入所有列注意
插入的数据应与字段的数据类型相同数据的大小应该在列的长度范围内在values中列出的数据位置必须与被加入列的排列位置相对应。除了数值类型外,其它的字段类型的值必须使用引号引起。如果要插入空值,可以不写字段,或者插入 null。对于自动增长的列在操作时,直接插入null值即可。
更新
update 表名 set 字段名=值,字段名=值;update 表名 set 字段名=值,字段名=值 where 条件;
删除
delete from 表名 [where 条件];一条一条的删除,不清空auto_increment记录数。
truncate table 表名;整个表删除,重新建表,auto_increment将置为零,从新开始
查询
查询指定字段信息select 字段1,字段2,...from 表名;
查询表中所有字段select * from 表名;
distinct用于去除重复记录select distinct 字段 from 表名;
别名查询,使用的as关键字,as可以省略的.别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。表别名格式:select * from 表名 as 别名;select * from 表名 别名;列别名格式:select 字段名 as 别名 from 表名;select 字段名 别名 from 表名;
我们在sql语句的操作中,可以直接对列进行运算。例如:将所有账务的金额+10000元进行显示.select pname,price+10000 from product;
查询所有吃饭消费记录SELECT * FROM zhangwu WHERE name = '吃饭消费';查询出金额大于2000的信息SELECT * FROM zhangwu WHERE money >2000;查询出金额在2000-8000之间的账务信息SELECT * FROM zhangwu WHERE money >=2000 AND money <=8000;SELECT * FROM zhangwu WHERE money BETWEEN 2000 AND 5000;查询出金额是1000或5000或3500的商品信息SELECT * FROM zhangwu WHERE money =1000 OR money =5000 OR money =3500;SELECT * FROM zhangwu WHERE money IN(1000,5000,3500);查询包含”支出”的账务信息。SELECT * FROM zhangwu WHERE name LIKE "%支出%";查询是无五个字的信息SELECT * FROM gjp_ledger WHERE ldesc LIKE "_____"; -- 五个下划线_不为null信息SELECT * FROM zhangwu WHERE name IS NOT NULL;SELECT * FROM zhangwu WHERE NOT (name IS NULL);
- ?
MySQL数据库中显示数据库表结构方法
Neoma
展开
在创建数据库表之后,在MySQL命令窗口中使用MySQL命令“show tables;”即可查看当前操作的数据库所有的表名。该命令的执行结构如图所示
在MySQL命令窗口中使用MySQL命令“describe table_name;”即可查看表名为table_name的表结构(describe 关键自也可以简写为desc),例如在MySQL命令窗口中输入命令“describe student;”,查看classes表的表结构。该命令的执行结果如图所示
使用上述命令无法查看数据哭表的存储引擎、字符集、自增字段起始值等信息,在MySQL命令窗口中使用MySQL命令“show create table_name;”即可查看创建表名为table_name的创建语句,从而查看表结构,包括存储引擎、字符集、自增字段起始值等信息。例如,在MySQL命令窗口中输入命令“show create table_name;”,即可查看student表的表结构。该命令的执行结果如图所示
- ?
数据库:使用sql语句建表的时候建立外键的两种方式
荣誉
展开
外键约束
外键一般是引用另外一张表单的主键外键可以重复外键可以为空主键和外键不一定名称一致,一致比较好,可读性性强一个表引用n个表的主键,那么就会有n个外键
设置外键有两种方式,一个是在建表的时候就直接设置好外键,还有一个就是表已经建立好的情况下,通过alter添加外键,两个方法均可以实现。
方式一:在建表的同时建立外键
这样就将emp表的deptno设置外键,其中fk_emp_dept是外键的名称
方式二:先建表,然后再添加外键
两种方式均添加了外键,上面两个都添加了外键名称,这个作用是方便删除外键的
一旦建立外键,要注意,主表中主键没有的,从表不能添加,还有从表中使用的主表不能删除,要想删除,要先把从表中使用某个主键的删除,然后再删除主表中的数据
CREATE TABLE dept(deptno INT PRIMARY KEY AUTO_INCREMENT,demame VARCHAR(50));CREATE TABLE emp(empno INT PRIMARY KEY AUTO_INCREMENT,ename VARCHAR(50),deptno INT,CONSTRAINT fk_emp_dept FOREIGN KEY(deptno) REFERENCES dept(deptno));CREATE TABLE emp(empno INT PRIMARY KEY AUTO_INCREMENT,ename VARCHAR(50),deptno INT);ALTER TABLE emp ADD CONSTRAINT fk_emp_dept FOREIGN KEY(deptno) REFERENCES dept(deptno);
- ?
最清晰SQL建表语句
罗斯托克
展开
CREATE TABLE rtb_item_ds --表名( --字段id STRING COMMENT 'id',name STRING COMMENT '名称',field STRING COMMENT '账号领域')COMMENT '用户信息表' --表的描述PARTITIONED BY --分区(day STRING)LIFECYCLE 1; --生命周期1天,可不写
领养 - ?
怎样用sql语句在sqlserver建表和插入数据?
邢愫
展开
详细步骤如下:
1、点击【新建查询】按钮,打开SQL命令编辑框,对数据库表的操作以及维护都可以通过编辑SQL命令实现。
2、在编辑框内编辑创建数据库表的代码,确认代码无误后,单击【执行】按钮,创建数据表。
3、创建数据表的源代码如下:
use test
go
if exists(select name from sys.tables where name='Student')
drop table Student
go
create table Student
(sname nchar(10) primary key,
sex nchar(2) not null,
bir datetime
)
(本文内容由百度知道网友糖糖寳寳贡献)
- ?
如何将SQL语句查询出的数据新建成一个表
凌兰
展开
CREATE VIEW `test`.`view_ll` AS(SELECT * FROM ...);
`test`.`view_ll` 是数据库.表名。()里面是sql语句。
(本文内容由百度知道网友du瓶邪贡献)
创建数据表的sql语句
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并