使用SQL语句创建数据库创建表

合集下载

SQL语句创建学生信息数据库表的示例-学生信息数据库表

SQL语句创建学生信息数据库表的示例-学生信息数据库表

用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示Student表结构Create table Student(Sno varchar(7) primary key,Sname varchar(10) not null,Ssex char (2) check(Ssex=‘男’or Ssex=’女’),Sage int check(Sage between 15 and 45),Sdept varchar(20)default(‘计算机系’))Course表结构Create table course(Cno varchar(10) primary key,Cname varchar(20) not null,Ccredit int check(Sctedit〉0),Semester int check(Semester>0),Period int check(Period>0))SC表结构Create table SC(Sno varchar(7) foreign key references student(Sno),Cno varchar(10) foreign key references course(Cno),Grade int check(Grade between 0 and 100),Primary key (Sno,Cno))1.查询学生选课表中的全部数据。

SELECT *FROM SCgo2.查询计算机系学生的姓名、年龄。

Select Sname,SageFrom StudentWhere Sdept=’计算机系’3.查询成绩在70~80分之间的学生的学号、课程号和成绩。

Select Sno,Cno,GradeFrom Course,ScWhere o=o and sc.Grade between 70 and 804.查询计算机系年龄在18~20之间且性别为“男"的学生的姓名和年龄。

使用sql批量生产mysql建表语句

使用sql批量生产mysql建表语句

批量生成MySQL建表语句通常用于数据库迁移、备份或者在多个环境中复用表结构。

以下是一个详细的步骤来实现这一目标:步骤1:获取MySQL数据库中的所有表定义在MySQL中,你可以通过查询INFORMATION_SCHEMA系统数据库来获取所有你需要的表结构信息。

例如,如果你想要获取名为test数据库中所有表的建表语句,可以运行如下SQL查询:SqlSELECTTABLE_NAME,GROUP_CONCAT(CONCAT('CREATE TABLE IF NOT EXISTS `', TABLE_NAME, '` (\n',COLUMN_SQL,'\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;')) AS CreateTableStatementFROM(SELECTTABLE_NAME,GROUP_CONCAT(CONCAT('\t`', COLUMN_NAME, '` ', COLUMN_TYPE,IF(IS_NULLABLE = 'YES', ' NULL', ' NOT NULL'),IF(COLUMN_KEY = 'PRI', ' PRIMARY KEY', ''),IF(EXTRA LIKE'%auto_increment%', ' AUTO_INCREMENT', '' ),',', CHAR(10)) ORDER BYORDINAL_POSITION) AS COLUMN_SQLFROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_SCHEMA = 'test'GROUP BYTABLE_NAME) AS ColumnsInfoGROUP BYTABLE_NAME;这个查询首先会从INFORMATION_SCHEMA.COLUMNS中获取每个表的所有列定义,并且拼接成对应的列创建语句,然后将这些列定义整合成完整的CREATE TABLE语句。

SQL语句创建表

SQL语句创建表

SQL语句创建表1.定义基本表语句语法:USE 数据库名CREATE TABLE 表名(列名类型(大小) DEFAULT'默认值',列名类型(大小) DEFAULT'默认值',列名类型(大小) DEFAULT'默认值',... ...);注:绿色部份是可以省略的。

例:CREATE TABLE S (SNO char(2), SNAME char(8), AGE decimal(2), SEX char(2) DEFAULT'男', DEPT char(2));创建了一个五列的表,其中第四列的默认值为‘男’。

2.定义完整性约束语法: USE 数据库名CREATE TABLE 表名(列名类型(大小) DEFAULT'默认值' CONSTRAINT 约束名约束定义, 列名类型(大小) DEFAULT'默认值' CONSTRAINT 约束名约束定义,列名类型(大小) DEFAULT'默认值' CONSTRAINT 约束名约束定义, ... ...); 注:(1) 绿色部份是可以省略的。

(2) 一个列是可以有多个约束的。

约束定义:(1)NULL | NOT NULL 用于定义列的空值约束。

(定义列) (下面的蓝色部份是单选其中之一)(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName))(3)PRIMARY KEY 约束唯一标识数据库表中的每条记录。

(即可以定义列也可能定义表)语法:CONSTRAINT 约束名PRIMARY KEY (列名, 列名, ... ...);说明:用于定义基本表的主键。

用SQL命令创建数据表

用SQL命令创建数据表

Ssex char(2),
Sage smallint,
Sdept varchar(20)
)
练习:
练习:课本P72 第3题 表5-2
数据表的修改
查看表属性 修改表结构 删除数据表
查看表属性
在SQL Server Management Studio中,选中要 查看的数据表,单击鼠标右键,选择“属性”, 将打开“表属性”对话框,如图所示。
例如:将学生表Student中“刘尘”所属的学院由CS改为 SS。 USE 学生选课 GO UPDATE Student SET Sdep = 'SS' WHERE Sname = '刘尘' 执行结果如图1所示,有一行记录被更新。
图1 更新数据表数据
更新数据时,每个列既可以被直接赋值,例如 上例子也可以通过计算得到新值。
在CREATE TABLE语句中需要指出的元素与在表设计器中相同,包括 表名、列名、列的数据类型以及列属性等。
用SQL命令创建数据表
USE 学生选课
GO
CREATE TABLE Student
(
Sno
int NOT NULL PRIMARY KEY ,
Sname varchar(20)NOT NULL,
另外,用户还还可在查询窗口中使用 SELECT命令查看一个或多个表中的数据 。
用INSERT语句插入数据
INSERT语句的基本语法: INSERT INTO 表名 (列名1 , 列名2, ……, 列名n) VALUES (值1, 值2 , ……, 值n)
INSERT子句指定要插入的数据表名,并且可以同时指定表的列名称。 VALUES子句指定要插入的数据。 例:

SQL语句创建学生信息数据库表的示例-学生信息数据库表

SQL语句创建学生信息数据库表的示例-学生信息数据库表

用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示之答禄夫天创作Student表结构列名说明数据类型约束Sno 学号字符串,长度为7 主码Sname 姓名字符串,长度为10 非空Ssex 性别字符串,长度为2 取‘男’或‘女’Sage 年龄整数取值15~45Sdept 所在院系字符串,长度为20 默认为‘计算机系’Create table Student(Sno varchar(7) primary key,Sname varchar(10) not null,Ssex char (2) check(Ssex=‘男’or Ssex=’女’),Sage int check(Sage between 15 and 45),Sdept varchar(20)default(‘计算机系’))Course表结构列名说明数据类型约束Cno 课程号字符串,长度为10 主码Cname 课程名字符串,长度为20 非空Ccredit 学分整数取值大于0Semester 学期整数取值大于0Period 学时整数取值大于0 Create table course(Cno varchar(10) primary key,Cname varchar(20) not null,Ccredit int check(Sctedit>0),Semester int check(Semester>0),Period int check(Period>0))SC表结构列名说明数据类型约束Sno 学号字符串,长度为7 主码,引用Student的外码Cno 课程号字符串,长度为10 主码,引用Course的外码Grade 成绩整数取值0~100 Create table SC(Sno varchar(7) foreign key references student(Sno), Cno varchar(10) foreign key references course(Cno), Grade int check(Grade between 0 and 100),Primary key (Sno,Cno))1.查询学生选课表中的全部数据。

T-SQL语句操作数据库——基本操作

T-SQL语句操作数据库——基本操作

--考号 --学号ABLE 表名
例如:
DROP TABLE peoInfo
三、使用SQL语句创建和删除约束
约束的目的是确保表中数据的完整性。
常用的约束类型:
主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。 唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint):某列取值范围显示、格式限制等,如有关年龄的约束。 默认约束(Default Constraint):某列的默认值,如我们的性别默认为“男”。 外键约束(Foreign Key Constraint):用于在两表之间建立关系,需要指定引用主表的那一列。
示例:
/*--删除peoInfo表中地址默认约束的语句--*/ ALTER TABLE peoInfo DROP CONSTRAINT DF_peoAddress
/*--添加默认约束--*/ ALTER TABLE peoInfo ADD CONSTRAINT DF_peoAddress DEFAULT ('地址不详') FOR peoAddress
/*--添加检查约束--*/ ALTER TABLE peoInfo ADD CONSTRAINT CK_stuAge CHECK(peoAge BETWEEN 15 AND 40)
二、创建和删除表
1、创建表的语法如下:
CREATE TABLE 表名 (
字段1 数据类型 列的特征, 字段2 数据类型 列的特征, ... )
示例:
需求:创建学员信息表peoInfo。
USE people GO CREATE TABLE peoInfo (

SQL-创建数据库及简单查询语句

SQL-创建数据库及简单查询语句
--(2)查询出账户余额小于10元的所有银行卡号。
select cardId from dbo.T_account where balance<10
--(3)查询出存款类型为“定期”的客户编号、客户名称、身份证号、性别、联系电话。
select customerId,customerName,PID,sex,telephone from dbo.T_customer
where customerId in(select customerId from dbo.T_account where savingType='一年定期')
--(4)查询出取款金额大于5000元的所有客户名称(消除重复项)。
select distinct customerName from dbo.T_customer
--在T_customer客户表中将客户编号为“001”的客户姓名改为“张力”
update dbo.T_customer set customerName='张力'where customerId='001'
--(1)查询出客户编号为“002”的客户姓名。
select customerName from dbo.T_customer where customerId='002'
insert into T_customer(customerId,customerName,PID,sex,telephone)
values('003','李晓晨','430203197611031757','男','13907310003')

用SQL语句创建表用SQL语句创建数据库

用SQL语句创建表用SQL语句创建数据库

⽤SQL语句创建表⽤SQL语句创建数据库数据库中的所有数据存储在表中。

数据表包括⾏和列。

列决定了表中数据的类型。

⾏包含了实际的数据。

例如,数据库pubs中的表authors有九个字段。

其中的⼀个字段名为为au_lname,这个字段被⽤来存储作者的名字信息。

每次向这个表中添加新作者时,作者名字就被添加到这个字段,产⽣⼀条新记录。

通过定义字段,你可以创建⼀个新表。

每个字段有⼀个名字和⼀个特定的数据类型(数据类型在后⾯的“字段类型”⼀节中讲述),例如字段au_lname存储的是字符型数据。

⼀个字段也可以存储其它类型的数据。

使⽤SQL Sever,创建⼀个新表的⽅法是很多的。

你可以可执⾏⼀个SQL语句或使⽤SQL事务管理器(SQL Enterprise Manager)来创建⼀个新表。

在下⼀节⾥,你将学会如何⽤SQL语句来创建⼀个新表。

⼀、⽤CREATE语句创建表注意:如果你还没有建⽴⾃⼰的数据库,现在就跳回到第三章创建这个库。

你绝不能向master,tempdb或任何其他任何系统数据库中添加数据。

从SQL Sever程序组(在任务栏中)中启动ISQL/w程序。

出现查询窗⼝后,从窗⼝顶部的下拉列表中选择你在第三章所创建的数据库。

下⼀步,在查询窗⼝中键⼊下⾯的SQL语句,单击执⾏查询按钮,执⾏这个语句:CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate DATETIME)如果⼀切正常,你会在结果窗⼝中看到如下的⽂字(如果出现异常,请参阅第三章):This command dit not return data ,and it did not return any rows祝贺你,你已经建⽴了你的第⼀个表!你所创建的表名为guestbook,你可以使⽤这个表来存储来字你站点访问者的信息。

你是⽤CREATE TABLE语句创建的这个表,这个语句有两部分:第⼀部份指定表的名字;第⼆部份是括在括号中的各字段的名称和属性,相互之间⽤逗号隔开。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

举例
❖例2、可以简单地来创建数据库, CREATE DATABASE mytest
▪ 没有指定主文件名,在默认的情况 下,命名主文件为mytest.mdf,
▪ 日志文件名为mytest_log.ldf。 ▪ 主文件和日志文件的大小都同Model
数据库的主文件和日志文件大小一 致,并且可以自由增长。
WHERE name=’xkqk’ and type=‘U’ ) DROP TABLE xkqk CREATE TABLE xkqk ( ….. ) GO
插入(添加)数据
插入 一个 元组
INSERT [INTO] 表名[(属性列1[,属性 列2]…)]
VALUES (常量1[,常量2]…)
插入 子查询 结果
xkqk选课情况
字段名
sno kch grade
说明
学号 课程号 分数
字段数据类 型 char char smallint
字段大 小
15
4
约束
主键;外键 主键;外键 [0,100]
❖create table xkqk
❖ (sno char(15) foreign key references student(sno),

FILENAME = 'E:\class2.ndf',

SIZE = 40MB,

MAXSIZE = 100MB,

FILEGROWTH = 10MB)
❖ LOG ON

( NAME = class1_log,

FILENAME = 'E:\classlog1.ldf',

SIZE = 15MB),
❖kch char(4) foreign key references kcda(kch), ❖grade smallint check(grade between 0 and 100),
❖constraint pk_xkqk primary key(sno,kch))
使用ALTER TABLE语句修改表结构 ❖使用ALTER TABLE语句可以为表
使用SQL语句创建表
CREATE TABLE 表名 (
字段1 数据类型 列的特征, 字段2 数据类型 列的特征, ...
)
❖列的特征: ❖是否为主键 ❖包括该列是是否为空(NULL) ❖、是否是标识列(自动编号)、 ❖是否有默认值、等。
student
字段名 sno sname ssex sbirth
练习:用creat bable语句创建Kcda (课程档案)表
字段名 kch
说明 课程号
字段数据类型 char
字段大小 4
约束 主键
kcmc
课程名称 char
10
Not null
zxs
总学时
smallint
❖create table kcda ❖(kch char(4) primary key, ❖kcmc char(10) not null, ❖zxs smallint)
INSERT [INTO] 表名[(属性列1[,属性列 2]…)] SELECT 语句
❖注意:插入字符型和日期型数据 时必须用单引号。
❖ insert into recReipt ❖ values (R081008001,2008-10-8,杭州娃哈哈,无)
删除数据库
❖格式:DROP DATABASE 数据库名 ❖例、将mytest数据库删除
▪ Drop database mytest ❖删除数据库将删除数据库所使用的数
据库文件和磁盘文件。
例3、复杂一点的数据库创建范例
❖数据库名称为Student,
▪ 第一个数据文件逻辑名称为class1,物理文件名为 E:\class1.mdf, 初始大小20MB,最大尺寸为无限 大,增长速度为20%。
使用SQL语句创建数据库、表
创建数据库
❖创建一个只含一个数据文件和一个 事务日志文件的数据库
❖CREATE DATABASE 数据库名
[ON [PRIMARY] {(NAME=数据文件的逻辑名称, FILENAME='数据文件的路径和文件名', SIZE=数据文件的初始容量, MAXSIZE=数据文件的最大容量, FILEGROWTH=数据文件的增长量)}[,…n] LOG ON {(NAME=事务日志文件的逻辑名称, FILENAME='事务日志文件的物理名称', SIZE=事务日志文件的初始容量, MAXSIZE=事务日志文件的最大容量, FILEGROWTH=事务日志文件的增长量) }[,…n]] 说明
Transact-SQL的语法规则
规则
描述
|(竖线) [](方括号)
分隔括号或大括号内的语法项目。只 能选择一个项目
可选语法项目。不必键入方括号
{}(大括号) 必选语法项目。不必键入大括号
[,…n]
表示前面的项可重复n次,每一项由逗 号分隔
参数
数据库名称 数据文件逻辑名 数据文件物理名 数据文件初始大小 数据文件最大值 数据文件增长值 事务日志文件逻辑名 日志文件物理名 日志文件初始大小 日志文件最大值 日志文件增长值
❖alter table receipt add checker char(10)
❖③ 将Dealer列的数据类型该为字符型, 长度为10。
❖alter table receipt alter column dealer char(10)
❖④ 删除Dealer列。
❖alter table receipt drop column dealer
参数值
Student1 Student1_dat D:\student1_dat.mdf 10MB 50MB 原来的20% Student1_log D:\student1_log.ldf 4MB 25MB 5MB
❖create database student1 ❖on ❖(name=student1_dat, ❖filename='d:\student_dat.mdf', ❖size=10, ❖maxsize=50, ❖filegrowth=20%) ❖log on ❖(name=student1_log, ❖filename='d:\student_log.ldf', ❖size=4, ❖maxsize=25, ❖filegrowth=5)
说明 学号
字段数据类 字段大 约束


char
15
主键
姓名
char
10
Not null
性别
char
2
出生年月 datetime 日
(‘男’,‘女’);默认值为 ‘男’
[1990-1-1,1992-12-31]
email
E-mail varchar 40
包含@
❖create table student ❖(sno char(15) primary key, ❖sname char(10) not null,
▪ 第二个的数据文件Class2, E:\class2.ndf,初始 大小40MB,最大尺寸为100MB,增长速度 10MB。
▪ 2个15MB的事务日志文件,事务日志文件的逻辑 名为class1_log和class2_log,物理文件名为 E:\classlog1.ldf和classlog2.ldf。
❖⑤ 删除Checker列。
删除表的语法: DROP TABLE 表名
❖ IF EXISTS(SELECT * FROM sysobjects WHERE name=’xkqk’ and type=‘U’ )
❖ DROP TABLE xkqk
删除表
USE jxgl GO IF EXISTS(SELECT * FROM sysobjects
❖ CREATE DATABASE student
❖ ON PRIMARY

( NAME = class1,

FILENAME = 'E:\class1.mdf',

SIZE = 20MB,

MAXSIZE = unlimi),

( NAME = class2,
添加或删除列,也可以修改列性质。
❖使用ALTER TABLE语句修改Receipt表, 具体要求如下:
❖① 插入Dealer(经手人)列,数据类 型为整型。
❖ alter table receipt add dealer int
❖② 插入Checker(审核人)列,数据类 型为字符型,长度为10。
❖ ssex char(2) check(ssex in('男','女')) default('女'),
❖ sbirth datetime check(sbirth between '1990-11' and '1992/12/31'),
❖email char(40) check(email like '%@%'))

( NAME = class2_log,

FILENAME = 'E:\classlog2.ldf',

SIZE =15MB)
❖ GO
▪ 使用模板: ▪ Create dababase中的 ▪ Create Database on Multiple
Files Groups.tql
❖ 建表的语法
相关文档
最新文档