精华内容
下载资源
问答
  • sql语句创建表允许为空
    千次阅读
    2017-03-21 14:55:37

    1.在创建数据表时,字段的类型放在字段的后面,这与C语言中定义结构成员的顺序是相反的。如:

    create table EMPLOYEE(

    EmpNo varchar(8) not null primary key,

    ……

    )

    2.使用check约束字段中值的范围,check后面的括号中应为表达式,如Gender='male' or Gender='female'

    EmpSex varchar(2) check(EmpSex='男' or EmpSex='女'),

    3.一些字段虽然不是主键,但根据实际情况,不能为空值的,如EMPLOYEE表中的EmpName需要在定义后面加上 not null

    EmpName varchar(20) not null,

    4.当某个字段是外键时,需要用references关键字来说明其对应的另一个表的主键

      create table WORKS(
    EmpNo varchar(8) foreign key references EMPLOYEE(EmpNo),
    ……
      )

    5.如果要为多个列定义PRIMARY KEY约束,则要使用下述SQL语句:

    constraint pk_works primary key(EmpNo,CmpNo)

    更多相关内容
  • 实验四 分别用向导和SQL语句创建和删除 用向导建立 在数据库EDUC的分支下右击新建出来列名数据类型是否允许空等列项根据建立需要填的内容点击保存把表名改相应的表明即可 用企业管理器删除所建立的...
  • 文章目录实验目的一、通过SQL语句删除二、通过SQL语句创建表三、通过SQL语句管理结构1.添加和删除列2.添加和删除约束四、通过SQL语句添加、修改、删除中数据1. 插入数据2.修改数据3.删除数据小结 实验目的 ...


    实验目的

    (1)掌握查询分析器的使用。
    (2)掌握通过SQL语句创建表的方法。
    (3)掌握通过SQL语句修改表结构的方法。
    (4)掌握通过SQL语句添加、修改、删除表数据的方法。


    一、通过SQL语句删除表

    用SQL语句在数据库Student_info中删除实验一创建的Student表、Course表、SC表。

    由于这三个表外键关联了,所以单独删除会出现”无法删除“的错误
    在这里插入图片描述
    所以先删除表的外键约束
    在这里插入图片描述
    然后就可以删除表了
    在这里插入图片描述
    我这里的表下面有红色波浪线是因为我已经把表删掉了

    二、通过SQL语句创建表

    用SQL语句在数据库Student_info中创建实验1中的Student表,Course表,SC表,表结构如实验一中的表B.2 , 表B.3 , 表B.4所示
    首先使用student_info数据库
    在这里插入图片描述
    然后再创建表
    在这里插入图片描述
    在这里插入图片描述

    三、通过SQL语句管理表结构

    1.添加和删除列

    a.给Student表增加身高(以米单位)stature列,类型为numeric(4,2),允许为空值,且身高值需小于3.0米。
    在这里插入图片描述

    b.给Student表增加所在系Sdept列,字符型,长度2,不允许为空值。
    在这里插入图片描述

    c.给Student表增加邮政编码Postcode列,字符型,长度为6,可以为空,若不为空时,则要求其值只能出现数字,不能是其他字符。
    在这里插入图片描述
    d.删除Student表中的身高列stature
    在这里插入图片描述
    发生错误,所以应先删除约束,约束名称如上图中框起来的,然后再删除列
    在这里插入图片描述

    2.添加和删除约束

    a.在Student表添加约束:入学时间必须在出生年月之后。
    在这里插入图片描述

    b.给SC表的成绩grade列增加默认值约束,默认值为0。
    在这里插入图片描述

    c.删除grade列的默认值约束。
    在这里插入图片描述

    四、通过SQL语句添加、修改、删除表中数据

    1. 插入数据

    a.Student表、Course表、SC表的记录见实验一的表B.5、表B.6、表B.7,其他数据可自行添加。要求Student表和SC表中数据包括了每位同学自己的学号。

    Student表
    在这里插入图片描述
    Course表
    在这里插入图片描述
    SC表
    在这里插入图片描述

    b.执行如下语句:insert into student(sno,sname,sex)values(‘20101101’,‘赵青’,‘男’),该语句能成功执行吗?为什么?
    不能,因为Sdept列不允许为空值
    在这里插入图片描述

    c.执行如下语句:insert into sc values(‘20110103’,‘005’,80),该语句能成功执行吗?为什么?

    不能,因为SC表与Course表的列Cno外键关联,由于Course表中的Cno列没有’005’的数据,所以不能执行成功
    在这里插入图片描述

    2.修改数据

    a.使用T-SQL语句,将Course表中的课程号为’002’的学分改为4,总学时改为64。
    在这里插入图片描述

    b.使用T-SQL语句,将SC表中的选修了’002’课程的同学的成绩*80%。
    在这里插入图片描述

    3.删除数据

    a.使用T-SQL语句,删除选修了“C语言程序设计”的学生的选课记录。
    在这里插入图片描述

    b.使用T-SQL语句,删除所有的学生选课记录。
    说明:删除后,请重新插入SC表中的记录。

    在这里插入图片描述
    重新插入SC表
    在这里插入图片描述


    小结

    通过本次实验,我基本掌握了用SQL语句创建表,对表的增删改查操作,还有对表添加一些基本的约束,在对表中的数据进行增删改时,要特别注意一些约束,由于约束的存在,对表进行操作时会出现错误。

    展开全文
  • 展开全部字段允许为空语句为62616964757a686964616fe59b9ee7ad9431333431353862:altertable表名altercolumn列名类型长度null。数据库SQL语言的修改语句,可以用来修改基本,其一般表示格式为:ALTER TABLE[改变...

    展开全部

    字段允许为空的语句为62616964757a686964616fe59b9ee7ad9431333431353862:alter table  表名 alter column 列名 类型长度 null。

    数据库SQL语言的修改语句,可以用来修改基本表,其一般表示格式为:

    ALTER TABLE[改变方式]

    改变方式:

    1、 加一个栏位: ADD "栏位 1" "栏位 1 资料种类"

    2、删去一个栏位: DROP "栏位 1"

    3、改变栏位名称: CHANGE "原本栏位名" "新栏位名" "新栏位名资料种类"

    4、改变栏位的资料种类: MODIFY "栏位 1" "新资料种类"

    扩展资料

    如需在表中添加列,请使用下面的语法:  ALTER TABLE table_name   ADD column_name datatype

    如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):ALTER TABLE table_name    DROP COLUMN column_name

    要改变表中列的数据类型,请使用下面的语法:

    SQL Server / MS Access:ALTER TABLE table_name   ALTER COLUMN column_name datatype

    My SQL / Oracle:ALTER TABLE table_name   MODIFY COLUMN column_name datatype

    Oracle 10G 之后版本:ALTER TABLE table_name  MODIFY column_name datatype;

    展开全文
  • SQLSERVER数据库、创建SQL语句命令 备份,还原,创建,删除,查询,修改 ** 数据库定义及操作命令:** 按照数据结构来组织、存储和管理数据的仓库。由、关系以及操作对象组成,把数据存放在数据中。 修改数据库...

    SQLSERVER数据库、表的创建及SQL语句命令

    备份,还原,创建,删除,查询,修改

    ** 数据库定义及操作命令:**

    按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。
    修改数据库密码的命令:
    EXEC sp_password NULL, ‘你的新密码’, ‘sa’
    sp_password Null,‘sa’,‘sa’
    1、备份SQL数据库
    备份SQL数据库:

    backup database [3D-DATA]/*原数据库*/ to  disk='D:\Program Files\Microsoft SQL       Server\MSSQL10.MSSQLSERVER\MSSQL\backup\3D-DATA_backup_20131017.bak/*数据库备份文件*/' 
    with name = '3D-DATA_backup_20131017'/*数据库备份文件*/
    

    查看备份数据库的逻辑文件:

    restore filelistonly 
    from disk= 
    'd:\Program Files\Microsoft SQL Server\
    MSSQL10.MSSQLSERVER\MSSQL\backup\3D-DATA_backup_20131017.bak '
    

    强制还原SQL数据库:
    [其中,Test-3d是已存在的数据库,3D-FEP_data和3D-FEP_log为备份数据库的两个逻辑文件,]

    restore database [Test-3d]
       from disk = 'd:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\3D-DATA_backup_20131017.bak' 
    with 
    move '3D-FEP_data' to 'D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Test-3d.mdf', 
    move '3D-FEP_log' to 'D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Test-3d_log.ldf',
    

    stats = 10/* 表示每完成10%显示一条记录*/ ,replace/表示强制,放置在with后,加英文逗号也可/

    以下为另一种方式:
    -备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。

    USE master;
    backup database DB 
    to disk = 'g:\DBBack0930.bak' ;
    restore filelistonly 
    form disk = 'g:\DBBack0930.bak' ;
    
    restore database DBTest(此数据库,已创建) 
    FROM DISK = 'g:\DBBack0930.bak' 
    WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest.mdf',
    MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest_log.ldf' 
    GO
    

    SQL Server数据库备份有两种方式:
    1、使用命令:BACKUP DATABASE,将数据库文件备份出去;
    2、直接拷贝数据库文件mdf和日志文件ldf的方式。
    下面将主要讨论一下后者的备份与恢复。本文假定您能熟练使用SQL Server Enterprise Manager (SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器)
      正常的备份、恢复方式正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。
      卸下数据库的命令:Sp_detach_db
      数据库名连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′ [,…16] sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name′ 使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将 mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。

    **

    2. SQL命令创建数据库及数据表

    **

    use master
    if db_id ('Test-a01')is not null--判断数据库,是否已存在
    drop database [Test-a01]--删除数据库 小心使用 使用错误就跑路
    go
    

    创建Test-a01

    create database [Test-a01] on  primary 
    (	
    	name = 'Test-a01_data', --数据文件的逻辑名称
    	filename = 'D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Test-a01_data.ndf' , --数据文件的路径和文件名
    	size = 3mb ,-- 数据文件的初始容量
    	maxsize = 10mB --数据文件的最大容量
    )
    log on 
    ( 
    	name = 'Test-a01_log', --事务日志文件的逻辑名称
    	filename = 'D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Test-a01_log.ndf' , --事务日志文件的路径和文件名
    	size = 3mb , --事务日志文件的初始容量
    	maxsize = 10mB --事务日志文件的最大容量
    )
    Go
    

    创建表&字段

    use [xxxxx] /*指定创建表的数据库*/
    go
    create table student
    (
    	stuID char(5) primary key,--主键
    	stuname char(20)not null,
    	stusex char(2) check(stusex in('男','女')) default('女'),--设定范围及默认值
    	stuage char(6),
    	stubirth date check(stubirth between '1985-01-01' and '1995-12-31'),--设置日期范围
    	stuaddress varchar(100),
    	stunum char(12),
    	stuemail char(40)check(stuemail like '%@%')
    )
    go
    use [xxxxx]
    go
    create table teacher
    (
    	TeacherID char(5), 
    	Teaname char(20)not null,
    	Teasex char(2) check(Teasex in('男','女')) default('女'),
    	Teaage char(6),
    	Entrydate date check(Entrydate between '1950-01-01' and '2099-12-31'),
    	Teaphone varchar(100),
    	Teanum char(12),
    	Teaaddress char(40)
    )
    

    1、删除新表:

    drop table table_name;
    

    2、创建视图:

    create view viewname as select statement;1create view view_name01(**stuid,stuname,stusex,stuage**) 
    as 
    select **stuid,stuname,stusex,stuage** from student where stuage>=25;
    其中,**中的字段列,必须相同。
    
    如下例2,则不用考虑(比较常用).
    create view view_name02 
    as 
    select stuid,stuname,stusex,stuage from student where stuage>=25;
    
    

    查看视图:

    select * from view_name;
    

    3、删除视图:

    drop view viewname;
    

    4、创建索引:

    create [unique] index idx_name on table_name(字段1);
    create index idx_name on table_name (COLUMN_NAME);
    

    5、删除索引:

    drop index idxname;
    

    常见创建数据表的限制,有以下几种:
    NOT NULL
    UNIQUE
    CHECK
    主键 (Primary Key)
    外来键 (Foreign Key)

    1、NOT NULL
    表示某字段的值,不允许出现空值。
    例如:

    CREATE TABLE Customer 
    (
    	SID int NOT NULL, 
    	Last_Name varchar (30) NOT NULL, 
    	First_Name varchar(30)
    );
    

    2、unique
    表示某字段的值,不允许重复
    例如:

    CREATE TABLE Customer 
    (
    	SID int Unique, 
    	Last_Name varchar (30) NOT NULL, 
    	First_Name varchar(30)
    );
    

    3、check
    检查某字段的值,必须符合某些条件

    CREATE TABLE Customer 
    (
    	SID int  check( sid>0 ), 
    	Last_Name varchar (30) NOT NULL, 
    	First_Name varchar(30)
    );
    

    4、主 键
    主键 (Primary Key) 中的每一笔资料都是表格中的唯一值。
    添加主键SQL命令(注意:选择作主键的列,必须有数值):
    Alter table teacher add primary key(TeacherID);
    Alter table teacher add primary key(TeacherID);

    创建数据表时,加主键的不同方式:
    MySQL:

    CREATE TABLE Customer 
    (SID integer, 
    Last_Name varchar(30), 
    First_Name varchar(30), 
    PRIMARY KEY (SID)); 
    

    Oracle:

    CREATE TABLE Customer 
    (SID integer PRIMARY KEY, 
    Last_Name varchar(30), 
    First_Name varchar(30)); 
    

    SQL Server:

    CREATE TABLE Customer 
    (SID integer PRIMARY KEY, 
    Last_Name varchar(30), 
    First_Name varchar(30)); 
    

    删除主键的SQL语句:
    语法:alter table 表名 drop constraint 主键约束名(非字段名称)
    如:

    alter table Stu_PkFk_S drop constraint PK_S;
    

    5、外 键
    外来键是一个(或数个)指向另外一个数据表主键的字段。外键作用是:确定资料限制输入的参考完整性(referential integrity)。换言之,只有被准许的字段值才会被存入数据库内。
    Store_Information 表格

    StoreID(主键)	store_name      Sales 	Date 	        Reg_ID(外键)
    1001	        Los Angeles 	$1500 	Jan-05-1999 	9003
    1002	        San Diego 	    $250 	Jan-07-1999 	9004
    1003	        Los Angeles 	$300 	Jan-08-1999 	9003
    1004	        Boston 	        $700 	Jan-08-1999 	9001
    

    Geography 表格

    RegionID(主键)	region_name 	store_name 
    9001	        East 	        Boston 
    9002	        East 	        New York 
    9003	        West 	        Los Angeles 
    9004	        West 	        San Diego 
    
    

    创建外键的命令操作:如下,

    alter table [Store_Information] 
    add foreign key (Reg_ID) references [Geography](regionID);
    

    alter table 需要建立外键的表 add constraint 外键名字 foreign key references 外键表(外键字段) ;

    以下列出几个在建置 ORDERS 表格时指定外键的方式:
    外键Reg_ID,指向主键regionID。
    MySQL:

    CREATE TABLE ORDERS 
    (Order_ID integer, 
    Order_Date date, 
    Customer_SID integer, 
    Amount double, 
    Primary Key (Order_ID), 
    Foreign Key (Customer_SID) references CUSTOMER(SID)); 
    

    Oracle:

    CREATE TABLE ORDERS 
    (Order_ID integer primary key, 
    Order_Date date, 
    Customer_SID integer references CUSTOMER(SID), 
    Amount double); 
    

    SQL Server:

    CREATE TABLE ORDERS 
    (Order_ID integer primary key, 
    Order_Date datetime, 
    Customer_SID integer references CUSTOMER(SID), 
    Amount double); 
    

    以下的例子则是改变表格架构来指定外键。这里假设 ORDERS 表格已经被建立,而外键尚未被指定:

    MySQL:

    ALTER TABLE ORDERS 
    ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid); 
    

    Oracle:

    ALTER TABLE ORDERS 
    ADD (CONSTRAINT fk_orders1) FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid); 
    

    SQL Server:

    ALTER TABLE ORDERS 
    ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);
    

    删除外键的SQL命令:
    alter table 表名 drop constraint 外键约束名(非字段名);
    如:

    alter table Stu_PkFk_Sc drop constraint FK_s;
    

    6、Alter Table
    改变表结构的方式:
    1、加一个字段

    Alter table table_name add 字段1 int,字段2 char(10),; 加多个字段
    Alter table table_name add 字段1 int、或字段2 char(10)、…;加一个字段
    

    2、删去一个字段

    Alter table table_name drop column字段1;--(SQLserver数据库,字段前要加“column”)
    

    3、改变字段名称 (此命令SQLserver数据库,不可用)

    ALTER table table_name change字段1 新字段1 char(50); 
    

    4、改变字段的类型(此命令SQLserver数据库,不可用)

    ALTER table table_name modify 字段1 char(20); 
    

    SQL语句:
    一、DML—数据操纵语言SQL命令,分为:select查询、insert into插入、delete from删除、update set修改.
     Select 查询命令
    最复杂、存在非常多的使用方法
    1、查询表中所有的数据

    Select  *  from  table_name;
    

    2、普通条件(where、and、or)查询

    Select *或者字段1,字段2,from table_name where 字段1=值1或字段2=值2;
    

    如查询一个范围的薪资

    SELECT store_name FROM Store_Information WHERE salary > 1000 OR (salary < 500 AND salary > 275);
    

    3、模糊条件(like)查询

    Select *或者字段1,字段2,from table_name where字段1 like %A%;包含A的字符
    Select *或者字段1,字段2,from table_name where字段1 like A%;以A起头的字符
    Select *或者字段1,字段2,from table_name where字段1 like %A;以A结尾的字符
    Select *或者字段1,字段2,from table_name where字段1 like '_汉字_';一个下划线,表示一个字符,共计四个字符
    Select *或者字段1,字段2,from table_name where字段1 like '%汉字%'; %表示无限个字符
    

    4、空值条件(null)查询

    Select *或者字段1,字段2,from table_name where 字段1 is not null;
    

    5、范围查询一 (in)

    Select *或者字段1,字段2,from table_name where 字段1 in (1,2,3,)或者('质量','数量',…)…;-- 字段值可为数值、或字符类型
    

    6、范围查询二 (between …and…)

    Select *或者字段1,字段2,from table_name where 字段1 between 10 and 100; 
    Select *或者字段1,字段2,from table_name where 字段1 between '1990-01-01' and '2012-12-31';
    

    7、排序查询(order by…asc/desc 一般都是组合使用)

    SELECT * FROM table_name  order by 字段1 asc;
    SELECT * FROM table_name  order by 字段2 desc;
    SELECT * FROM table_name  order by 字段1, 字段2,descasc;
    SELECT * FROM table_name where 字段1=数值1 order by 字段1 desc, 字段2 asc,;
    

    8、Count 统计记录数查询

    SELECT  Count(字段1,或字段2,…)[别名a…] FROM table_name; 【一般不与其它字段一起组合,否则会报错,可在后面加别名】
    【加条件“is not null,可过滤掉为空值数据】
    SELECT  Count(字段1,或字段2,…)[别名a…] FROM table_name where(字段1,或字段2,…) is not null; 
    SELECT  Count(字段1,或字段2,…),字段A FROM table_name group by 字段A;
    SELECT  Count(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;
    【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】
    

    9、sum 求和

    SELECT  sum(字段1,或字段2,…)FROM table_name;
    sum匹配的字段,一定为数值类型。 
    SELECT  sum(字段1,或字段2,…),字段A FROM table_name group by 字段A;
    SELECT  sum(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;
    【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】
    

    10、Max 求和

    SELECT  Max(字段1,或字段2,…)FROM table_name;
    sum匹配的字段,一定为数值类型。 
    SELECT  Max(字段1,或字段2,…),字段A FROM table_name group by 字段A;
    SELECT  Max(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;
    【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】
    

    11、Min 求和

    SELECT  Min(字段1,或字段2,…)FROM table_name;
    sum匹配的字段,一定为数值类型。 
    SELECT  Min(字段1,或字段2,…),字段A FROM table_name group by 字段A;
    SELECT  Min(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;
    【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】
    

    12、AVG 求平均值

    SELECT  avg(字段1,或字段2,…)FROM table_name;
    sum匹配的字段,一定为数值类型。 
    SELECT  avg(字段1,或字段2,…),字段A FROM table_name group by 字段A;
    SELECT  avg(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;
    【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】
    

    13、having筛选组查询
    那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过 $1,500。在这个情况下,我们不能使用 WHERE 的指令。那要怎么办呢?很幸运地,SQL 有提供一个 HAVING 的指令,而我们就可以用这个指令来达到这个目标。
    HAVING 子句通常是在一个 SQL 句子的最后。
    一个含有 HAVING 子句的 SQL 并不一定要包含 GROUP BY 子句。
    HAVING 的语法如下:

    SELECT "栏位1", SUM("栏位2") 
    FROM "表格名" 
    GROUP BY "栏位1" 
    HAVING (函数条件) ;
    
    select (字段1,或字段2,…)from table_name group by <字段1,或字段2,…> having <分组条件>;
    例如:查询出本次考试男女生的总成绩大于等于250分的信息 
    select sex,sum(score) as '总成绩' from student group by sex  having sum(score)>=250;
    

    12、表格连接
    Store_Information 表格

    store_name 	    Sales 	Date 
    Los Angeles 	$1500 	Jan-05-1999 
    San Diego 	    $250 	Jan-07-1999 
    Los Angeles 	$300 	Jan-08-1999 
    Boston 	        $700 	Jan-08-1999 
    
    

    Geography 表格

    region_name 	store_name 
    East 	        Boston 
    East 	        New York 
    West 	        Los Angeles 
    West 	        San Diego 
    
    
    SELECT A1.region_name REGION, SUM(A2.Sales) SALES 
    FROM Geography A1, Store_Information A2 --A1,A2使用到别名,更助于理解
    WHERE A1.store_name = A2.store_name   --关键处,存在相同的字段列
    GROUP BY A1.region_name --按区域名称,进行分类
    

    结果:
    REGION SALES
    East $700
    West $2050
    外部连接

    Select  a2. region_name, sum(a1.Sales ) from Store_Information a1 , Geography a2
    Where  a1. store_name=a2. store_name+   --"+"表示列表中的所有资料,都查取出来
    Group by a2.region_name;
    

    13、CONCATENATE字段列表内容间的串连
    MySQL: CONCAT()
    Oracle: CONCAT(), ||
    SQL Server: +
    CONCAT() 的语法如下:
    CONCAT(字符串1, 字符串2, 字符串3,…): 将字符串1、字符串2、字符串3,等字符串连在一起。请注意,Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字符串串连起来。不过,在Oracle中,我们可以用’||'来一次串连多个字符串

    SQL Server使用 +,如:加个空格+’ '+

    SELECT region_name + ' ' + store_name FROM Geography 
    WHERE store_name = 'Boston';
    

    14、SUBSTRING
    SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的数据库中不完全一样:
    MySQL: SUBSTR(), SUBSTRING()
    Oracle: SUBSTR()
    SQL Server: SUBSTRING() 此函数不可用
    最常用到的方式如下 (在这里我们用SUBSTR()为例):
    SUBSTR(str,pos): 由中,选出所有从第位置开始的字符。请注意,这个语法不适用于SQL Server上。
    SUBSTR(str,pos,len): 由中的第位置开始,选出接下去的个字符
    假设我们有以下的表格:
    Geography 表格

    region_name	  store_name
    East	      Boston
    East	      New York
    West	      Los Angeles
    West	      San Diego
    
    

    例1:

    SELECT SUBSTR(store_name, 3) 
    FROM Geography 
    WHERE store_name = 'Los Angeles'; 
    

    结果:
    ‘s Angeles’
    例2:

    SELECT SUBSTR(store_name,2,4) 
    FROM Geography 
    WHERE store_name = 'San Diego'; 
    

    结果:
    ‘an D’

    15、top查询
    随机取出10条数据

    select top 10 * from tablename order by newid();
    

     insert into…插入
    1、普通常用插入

    Insert into table_name (字段1, 字段2, 字段3,)values (数值1, 数值2, 数值3,);
    

    2、插入子查询结果

    Insert into table_name [(字段1, 字段2, 字段3,)] SELECT 语句;
    

    –后面的select语句中,还可加相应的限制条件(如:where)
    例如:

    insert into [XXXXX].[dbo].[Geography_001] (regionID,region_name,store_name)
    select [regionID],[region_name],[store_name] from [XXXXX].[dbo].[Geography] 
    where regionID>9002;
    

     delete from…删除
    1、删除表中的符合某个条件的所有数据信息:

    Delete from table_name where 字段1=数值1,或字段2=数值2,;
    

    2、删除表中所有内容,表结构不删除,以下两种效果一样:

    Delete table_name;
    truncate table table_name;
    

    3、完全删除表:

    Drop table table_name;
    

     update …set修改

    update table_name set 字段1=数值1 where 字段1=数值1, 字段2=数值2,;
    

    例如:

    UPDATE Store_Information SET Sales = 500
    WHERE store_name = "Los Angeles" 
    AND Date = "Jan-08-1999";
    

    SQL查询的拓展
     UNION 或 UNION ALL
    作用是将两个 SQL 语句的结果合并起来(相当于取两个SQL 语句的并集)
    UNION 的语法如下:
    [SQL 语句 1] UNION [SQL 语句 2]
    限制是两个 SQL 语句查询的字段值(可以为多个字段)内容,必须是同类型的数据。

    SELECT store_name
    FROM [XXXXX].[dbo].[Geography] 
    union
    SELECT 
    Store_Information
    FROM [XXXXX].[dbo].[Store_Information];
    

    结果:

    store_name(字段)
    Boston
    Los Angeles
    New York
    San Diego
    
    

    如果SQL语句中为union all ,则全部将两张表的字段值内容,查询出且包括重复的。

     distinct
    查询重复出现的字段值,只显示一次。

    select distinct 字段名1,字段名2 from 表格 order by 字段名1
    

    例如:
    Store_Information 表格

    store_name 	     Sales	  Date 
    Los Angeles 	 $1500	  Jan-05-1999 
    San Diego 	     $250	  Jan-07-1999 
    Los Angeles 	 $300	  Jan-08-1999 
    Boston 	         $700	  Jan-08-1999
    

    执行语句:

    select distinct [store_name] from [XXXXX].[dbo].[Store_Information];
    

    结果:

    store_name  (字段)
    Boston
    Los Angeles
    New York
    San Diego
    
    

     INTERSECT
    作用是将字段值都存在两个 SQL 语句中时,才查询出结果。(相当于取两个SQL 语句的交集)
    语法:
    [SQL 语句 1] INTERSECT [SQL 语句 2]
    限制是两个 SQL 语句查询的字段值(可以为多个字段)内容,必须是同类型的数据。

    SELECT store_name
    FROM [XXXXX].[dbo].[Geography] 
    intersect  
    SELECT 
    Store_Information
    FROM [XXXXX].[dbo].[Store_Information];
    

    结果:

    store_name  (字段)
    Boston
    Los Angeles
    San Diego
    

     MINUS
    只运用在两个 SQL 语句上。执行第一个 SQL 语句所产生的结果,如果存在第二个 SQL 语句的结果中,则会被去除,不显示最后结果中。执行第二个 SQL 语句所产生的结果,如果不存在第一个 SQL 语句所产生的结果内,则会被去除,不显示最后结果中

    Store_Information 表格

    store_name 	    Sales 	Date 
    Los Angeles 	$1500 	Jan-05-1999 
    San Diego    	$250 	Jan-07-1999 
    Los Angeles 	$300 	Jan-08-1999 
    Boston      	$700 	Jan-08-1999
    

    Internet_Sales 表格

    Date 	        Sales 
    Jan-07-1999 	$250 
    Jan-10-1999 	$535 
    Jan-11-1999 	$320 
    Jan-12-1999 	$750 
    

    而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的 SQL 语句:

    SELECT Date FROM Store_Information
    MINUS
    SELECT Date FROM Internet_Sales 
    

    结果:

    Date
    Jan-05-1999
    Jan-08-1999

     子查询
    在一个 SQL 语句中放入另一个 SQL 语句。在 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,就有一个子查询 (subquery) 的架构。
    子查询的作用是:1、用来连接表格。2、唯一能够连接两个表格的方式。

    子查询的语法如下:

    SELECT "栏位1" 
    FROM "表格" 
    WHERE "栏位2" [比较运算素] 
    (**SELECT "栏位1" 
    FROM "表格"
    WHERE [条件]**);
    

    其中,[比较运算素]可以为“=, >, <, >=, <=.”,也可以为“like”,及“and”、“or”,**部分表示内查询。

    展开全文
  • mysql使用SQL语句创建表

    万次阅读 2018-11-19 11:16:26
    使用SQL语句创建一张,不仅可以可以快速创建,少去了不少时间,还可以从这看出一个人对该技能点的熟悉程度。 下面是一张简单的创建语句: CREATE TABLE `tb_area`( `area_id` INT(2) NOT NULL AUTO_...
  • 利用SQL语句创建数据库

    千次阅读 2022-04-08 15:07:14
    创建数据库(Database) create database 数据库名; 创建Table create table 表名(列名...每个只能创建一个主键约束。 Unique:唯一性约束(即候选键),可以有多个唯一性约束。 Not null:非空约束。选择Not
  • Sql Server sql语句创建索引

    千次阅读 2022-06-08 09:50:03
    index_mode自定义索引名cn_name表名car_mode列名1.创建普通索引 SQL CREATE INDEX 语法 在创建一个简单的索引。允许使用重复的值: ...本例会创建一个简单的索引,名 “PersonIndex”,在 Person 的 Las
  • SQL语句创建表

    万次阅读 多人点赞 2016-07-28 23:22:41
    数据库中的所有数据存储在中。数据包括行和列。列决定了中数据的类型。行包含了实际的数据。...其中的一个字段名为为au_lname,这个字段被用来存储作者的名字信息。每次向这个中添加新作者时,作
  • 实验名称 实验2 通过SQL语句创建与管理数据 日期 2020年 06 月 04 日 一、实验目的: (1)掌握查询分析器的使用。 (2)掌握通过SQL语句创建表的方法。 (3)掌握通过SQL语句修改结构的方法。 (4)掌握...
  • sql语句创建索引

    千次阅读 多人点赞 2021-04-02 00:37:27
    实例 CREATE INDEX 实例 本例会创建一个简单的索引,名 “PersonIndex”,在 Person 的 LastName 列: CREATE INDEX PersonIndex ON Person (LastName); 4.索引添加约束 如果您希望以降序索引某个列中的值,您...
  • Sql server中 如何用sql语句创建视图

    千次阅读 2021-04-06 17:58:23
    有任何意义,我们可以根据这一实际情况,专门采购人员创建一个视 图,以后他在查询数据时,只需select * from view_caigou 就 可以啦。 第二点:使用视图,可以简化数据操作。 解释:我们在使用查询时,在很...
  • 通过SQL语句创建与管理数据

    千次阅读 2019-10-09 22:32:06
    通过SQL语句创建与管理数据 实验环境:SQL server2017 :依次是Student,Course,SC。 1.通过SQL语句创建表SQL语句创建Student,Course,SC。 Student:涉及空值约束,主键约束,默认值约束,均列级...
  • 数据库 用sql语句创建表

    千次阅读 2017-04-25 22:24:30
    sql语句创建表(基本语句)  以下代码本人都在Microsoft Sql Sever 2010 中成功执行。 USE E_Market --当前操作的数据库 GO --批处理 CREATE TABLE CommoditySort  --商品类别 ( SortID int ...
  • sql语句创建索引This statement is used to create an “index” on a column in an existing table. 该语句用于在现有的列上创建“索引”。 Key points on indexes: 指标要点: They are used to improve the ...
  • SQL语句创建和删除基本1. 编写6个基本2. 修改基本结构,完整性约束条件3. 用Drop table 语句删除基本 1. 编写6个基本 设有简单教学管理的6个关系模式如下: 系(系编号,系名称、系主任、联系电话、地址...
  • 方法一、alter table goods_tmp ALTER COLUMN a DROP NOT NULL; --将字段a取消非空限制,字段少时可...方法二、在PLSQL里左边树型结构里找到my table,在里面找到对应的,通过手动操作更改相应字段的约束。 方法三
  • mybatis中SQL语句的三联查

    千次阅读 2021-02-04 18:21:27
    mybatis+mysql运行问题,一直提示Column 'id' not found.mybatis自增主键配置:mybatis进行插入操作时,如果的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是OracleSequece和Mysql自增...
  • sql语句创建主键

    千次阅读 2016-09-26 11:39:07
    对于有数据的,在企业管理器里面创建索引时,容易超时,使用sql语句只要在,工具-选项设置超时值0,就不会超时。 在已有表里创建主键:alter table t_inputdata add constraint PK_t_inputdata primary key...
  • 实验三使用SQL语句创建和删除基本 一.实验目的 1.了解SQL Server的基本数据类型。 2.学会使用Create table语句创建基本。 二.实验要求 在查询分析器中使用SQL语句完成基本的创建、修改、删除。 ...
  • Oracle中备份的简单sql命令语句

    千次阅读 2021-05-02 06:09:51
    Oracle中备份的简单sql命令语句复制代码 代码如下:create table bmpforest.E_PKG_ATPCFG_BAC as select * from bmpforest.e_pkg_atpcfg where 1=2insert into E_PKG_ATPCFG_BAC select * from E_PKG_ATPCFG;...
  • 一、登入 ... 安装部署好MySQL后,打开命令...注意:使用SQL语句时一定要加“;” 查看MySQL的版本 show variables like 'version'; 创建数据库 创建一个Demo01数据库 create database Demo01; 注意:...
  • SQL语法创建及管理数据结构

    千次阅读 2020-07-26 12:05:11
    1. 熟悉数据的特点; 2. 熟悉在Management Studio中创建、编辑及删除数据; 3. 熟悉使用T-SQL创建、编辑及删除数据
  • 实验二 通过SQL语句创建与管理数据

    万次阅读 多人点赞 2019-05-26 09:23:13
    (2)掌握通过SQL语句创建表的方法。 (3)掌握通过SQL语句修改结构的方法。 (4)掌握通过SQL语句添加、修改、删除数据的方法。 实验内容 1.通过SQL语句删除 用SQL语句在数据库Student_info中删除实验一创建...
  • 新建表sql语句

    万次阅读 多人点赞 2017-06-13 15:57:09
    一、新建 新建学生(student):create table student ( id int not null, name varchar2(50), sex varchar2(25), birthday varchar2(225), createtime timestamp, primary key(id) );给和字段添加注释: <!--...
  • SQL创建表

    万次阅读 2019-06-25 17:22:05
    01 用语句创建表 打开SQL数据库,在数据库点右键创建student库,接着新建查询(这里使用新建查询) 前面已经创建过库,在student的基础上创建先输入use [student] go 如图: use [student] go create table ...
  • 【学习环境】:sql server 2012【学习内容】:使用sql语句进行库与创建【涉及知识点】:一、数据库的创建 在Sql server 2012中,分为界面操作和代码语句操作,界面操作在后续说明,今天所记为Sql语句的操作 ...
  • 知识点:使用SQL语句创建完整版数据库、使用SQL语句创建表、数据库创建好以后新增加字段、修改字段、删除字段的方法。删除数据库和数据库的方法。 需要掌握的知识: SQL Server数据库第一课:常用数据库介绍、...
  • ) check_id,check_no是这个的联合主键 一个允许有一个主键 但一个主键可以允许由多个字段构成复合主键 所以楼主的写法是不行的,用了多个主键 冒牌的可以,由多个字段构成一个主键 而一个表允许多个唯一键,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 294,054
精华内容 117,621
关键字:

sql语句创建表允许为空

友情链接: indicatorfragment.zip