第二次实验 数据定义语言DDL
- 格式:doc
- 大小:2.30 MB
- 文档页数:17
SQL语言数据定义语言DDL 实验学号:姓名:一.实验内容1.启动Navicat for MySQL,在MySQL –新建连接中完成连接参数配置。
2.登录到本地数据库服务器后,连接到test数据库上。
3.用SQL语句,建立如下所示的表student:属性名类型长度studentid Varchar 10name Varchar 20sex Varchar 2age IntegerFee DECIMAL 10,2address Varchar 50memo Varchar 3004. 用Create Table 语句建表CourseAa,表结构如下所示:属性名类型长度Aa1 Varchar 20Aa2 IntegerAa3 DECIMAL 105. 用Create Table 语句建表ChooseBb,表结构如下所示:属性名类型长度Bb1 Varchar 30Bb2 IntegerBb3 DECIMAL 66. 用Drop Table 语句删除表CourseAa。
7. 用Alter Table 语句更新表ChooseBb,添加一个属性名Bb4,类型Varchar,长度20,完整性约束设为非空值,缺省值设为字符“系统测试值”。
8. 用Alter Table 语句更新表ChooseBb,添加一个属性名Bb5,类型Varchar,长度10,完整性约束设为主码。
完成后,表ChooseBb 的设计如下所示。
9. 用Create View 语句建立一个视图View_Choosebb,生成的视图属性名(View_bb1,View_bb2,view_bb3), 其中View_bb1 对应于基表ChooseBb 的Bb1、View_bb2 对应于基表ChooseBb 的Bb4、view_bb3 对应于基表ChooseBb 的Bb5。
完成后,视图View_Choosebb 的设计如下所示。
10.用Drop View 语句删除视图View_Choosebb。
sql语言的ddl实验报告范文篇一:实验二 SQL语言数据定义语言DDL一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Navicat for MySQL 中用DDL语言进行对表、索引、视图的增加、删除和改动。
掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。
掌握使用SQL语句定义和删除同义词。
二、实验要求1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。
三、实验的重点与难点1、重点:(1)用SQL语句定义表结构(创建、修改和删除)。
(2)用SQL语句定义索引(创建、删除)。
(3)用SQL语句定义视图(创建、删除)。
(4)用SQL语句定义同义词(创建、删除)。
2、难点:完整性约束的定义、增加及删除。
同义词的定义与删除。
四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程(一)实验预习(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。
(2)掌握完整性约束定义、增加和删除的一般用法。
(3)掌握同义词定义、删除的一般用法。
(二)实验原理在Navicat for MySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令对表结构进行修改及完整性约束的增加、删除。
数据库课程实验报告
2.修改表
(1)给用户表增加一个“出生日期”(birthday)字段,数据类型为datetime,不为空。
(2)给订单表增加一个“总付款”(payment)字段,数据类型为float,默认值为0。
(3)给订单表增加一个“提交时间”(ordertime)字段,数据类型为datetime。
(4)给书目表增加如下约束条件:stock必须大于0。
(5)给订单详情表增加相应约束条件:quantity默认值为1,且必须大于0。
(6)给用户表增加相应约束条件:name必须为唯一。
加约束条件最值,不需要加add constraint。
加约束条件为唯一值才需要。
3.插入数据
结果验证
实验过程中遇到的问题解决办法与实验体会(10分)【请注意:此处必须如实填写,为空或不适均扣10分】。
SQL语句之数据定义语⾔(DDL)详解操作对象:数据库1)创建数据库MariaDB [(none)]> help create databaseName: 'CREATE DATABASE'Description:Syntax:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name[create_specification] ...create_specification:[DEFAULT] CHARACTER SET [=] charset_name(指定字符集)| [DEFAULT] COLLATE [=] collation_name(指定排序规则)查看系统默认⽀持的字符集和排序规则:MariaDB [(none)]> show character set;MariaDB [(none)]> show collation;我们可以在创建数据库的时候,指定字符集和排序规则,如果不指定,则默认使⽤mysql服务器级别指定的字符集和排序规则案例:创建discuz数据库MariaDB [(none)]> create database discuz default character set utf8;Query OK, 1 row affected (0.00 sec)2)修改数据库MariaDB [(none)]> help alter databaseName: 'ALTER DATABASE'Description:Syntax:ALTER {DATABASE | SCHEMA} [db_name]alter_specification ...(修改数据库的字符集和排序规则)ALTER {DATABASE | SCHEMA} db_nameUPGRADE DATA DIRECTORY NAMEalter_specification:[DEFAULT] CHARACTER SET [=] charset_name| [DEFAULT] COLLATE [=] collation_name(注意:⼀般⼯作中,很少⽤到)3)删除数据库MariaDB [(none)]> help drop databaseName: 'DROP DATABASE'Description:Syntax:DROP {DATABASE | SCHEMA} [IF EXISTS] db_name案例:MariaDB [(none)]> drop database discuz;Query OK, 0 rows affected (0.00 sec)操作对象:表1)创建表三种⽅式创建表MariaDB [(none)]> help create tableName: 'CREATE TABLE'Description:Syntax:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name(create_definition,...)[table_options][partition_options]Or:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name[(create_definition,...)][table_options][partition_options]select_statementOr:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name{ LIKE old_tbl_name | (LIKE old_tbl_name) }create_definition:col_name column_definition(1) | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) [index_option] ... | {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ... | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_option] ... | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)----------全⽂,稀疏索引 FUNLLTEXT INDEX(col1,col2) [index_option] ... | [CONSTRAINT [symbol]] FOREIGN KEY ------------外键 [index_name] (index_col_name,...) reference_definition | CHECK (expr)column_definition:(1) data_type(2) [NOT NULL | NULL] [DEFAULT default_value] ----------------NOT NULL | NULL, DEFAULT 默认值,所有类型都可以⽤的 [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]-----------------AUTO_INCREMENT⾃动增长,UNIQUE KEY唯⼀键,PRIMARY KEY主键 [COMMENT 'string'] [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}] [STORAGE {DISK|MEMORY|DEFAULT}] [reference_definition](3)data_type:(2)数值类型| TINYINT[(length)] [UNSIGNED] [ZEROFILL]-------------UNSIGNED⽆符号,取值:0-255| SMALLINT[(length)] [UNSIGNED] [ZEROFILL]-----------UNSIGNED⽆符号,取值:0-65535| INT[(length)] [UNSIGNED] [ZEROFILL]--------------UNSIGNED⽆符号,取值:0 ~ 4294967295| BIGINT[(length)] [UNSIGNED] [ZEROFILL]| REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]| DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]------------双精度,length总长度,decimals⼩数点后占⼏位| FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]---------------单精度,length总长度,decimals⼩数点后占⼏位| DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]| NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]⽇期类型| DATE----------⽇期| TIME----------时间| TIMESTAMP---------------时间戳,从1970年1⽉1⽇0分0秒,到当前时间,所经过的秒数(相对时间)| DATETIME---------⽇期时间型(绝对时间)| YEAR------------记录年字符串类型| CHAR[(length)]--------------定长[CHARACTER SET charset_name] [COLLATE collation_name]| VARCHAR(length)----------变长[CHARACTER SET charset_name] [COLLATE collation_name]| BINARY[(length)]| VARBINARY(length)| TINYBLOB| BLOB| MEDIUMBLOB| LONGBLOB| TINYTEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name]| TEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name]| MEDIUMTEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name]| LONGTEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name]| ENUM(value1,value2,value3,...)----------------枚举类型[CHARACTER SET charset_name] [COLLATE collation_name]| SET(value1,value2,value3,...)[CHARACTER SET charset_name] [COLLATE collation_name]| spatial_typereference_definition:(3) REFERENCES tbl_name (index_col_name,...) [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE] [ON DELETE reference_option] [ON UPDATE reference_option(4)]reference_option:(4) RESTRICT | CASCADE | SET NULL | NO ACTIONtable_option:ENGINE [=] engine_name------------------------MariaDB [testdb]> show engines;| AUTO_INCREMENT [=] value| AVG_ROW_LENGTH [=] value| [DEFAULT] CHARACTER SET [=] charset_name| CHECKSUM [=] {0 | 1}| [DEFAULT] COLLATE [=] collation_name| COMMENT [=] 'string'| CONNECTION [=] 'connect_string'| DATA DIRECTORY [=] 'absolute path to directory'| DELAY_KEY_WRITE [=] {0 | 1}| INDEX DIRECTORY [=] 'absolute path to directory'| INSERT_METHOD [=] { NO | FIRST | LAST }| KEY_BLOCK_SIZE [=] value| MAX_ROWS [=] value| MIN_ROWS [=] value| PACK_KEYS [=] {0 | 1 | DEFAULT}| PASSWORD [=] 'string'| ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT} | TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}]| UNION [=] (tbl_name[,tbl_name]...)总之:create table 表名(字段1 datatype 修饰符,字段2 datatype 修饰符......)table_option例1MariaDB [testdb]> create table tbl1 (id int not null,name varchar(100) not null,age tinyint); Query OK, 0 rows affected (0.09 sec)例2MariaDB [testdb]> create table products (prod_id char(10) not null,vend_id char(10) not null,prod_name varchar(254) not null,prod_price decimal(8,2) not null,prod_desc varchar(1000));Query OK, 0 rows affected (0.07 sec)查看表结构MariaDB [testdb]> desc products;+------------+---------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+------------+---------------+------+-----+---------+-------+| prod_id | char(10) | NO | | NULL | || vend_id | char(10) | NO | | NULL | || prod_name | varchar(254) | NO | | NULL | || prod_price | decimal(8,2) | NO | | NULL | || prod_desc | varchar(1000) | YES | | NULL | |+------------+---------------+------+-----+---------+-------+5 rows in set (0.00 sec)查看创建表时使⽤的命令:MariaDB [testdb]> show create table tb2;+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| tb2 | CREATE TABLE `tb2` (`id` smallint(5) unsigned NOT NULL,`name` varchar(20) NOT NULL,`age` tinyint(3) unsigned DEFAULT NULL,PRIMARY KEY (`id`,`name`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 |+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+MariaDB [testdb]> show create table students;+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| students | CREATE TABLE `students` (`id` smallint(5) unsigned NOT NULL,`name` varchar(20) NOT NULL,`age` tinyint(3) unsigned DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 |+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+查看表状态的MariaDB [testdb]> show table status like 'students'\G*************************** 1. row ***************************Name: studentsEngine: InnoDBVersion: 10Row_format: CompactRows: 0Avg_row_length: 0Data_length: 16384Max_data_length: 0Index_length: 0Data_free: 0Auto_increment: NULLCreate_time: 2017-11-16 15:41:18Update_time: NULLCheck_time: NULLCollation: latin1_swedish_ciChecksum: NULLCreate_options:Comment:1 row in set (0.00 sec)2)删除表MariaDB [testdb]> help drop tableName: 'DROP TABLE'Description:Syntax:DROP [TEMPORARY] TABLE [IF EXISTS]tbl_name [, tbl_name] ...[RESTRICT | CASCADE]MariaDB [testdb]> drop table tbl1;Query OK, 0 rows affected, 1 warning (0.03 sec)注意:数据库、表删除是不可逆的3)修改表MariaDB [testdb]> help alter tableName: 'ALTER TABLE'Description:Syntax:ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name[alter_specification [, alter_specification] ...][partition_options]alter_specification:table_options添加字段:add添加⼀个字段:| ADD [COLUMN] col_name column_definition-------------------添加⼀个字段[FIRST | AFTER col_name ]| ADD [COLUMN] (col_name column_definition,...)------------------添加多个字段| ADD {INDEX|KEY} [index_name]----------------------添加索引[index_type] (index_col_name,...) [index_option] ...| ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type] (index_col_name,...) [index_option] ...| ADD [CONSTRAINT [symbol]]UNIQUE [INDEX|KEY] [index_name][index_type] (index_col_name,...) [index_option] ...| ADD FULLTEXT [INDEX|KEY] [index_name](index_col_name,...) [index_option] ...| ADD SPATIAL [INDEX|KEY] [index_name](index_col_name,...) [index_option] ...| ADD [CONSTRAINT [symbol]]FOREIGN KEY [index_name] (index_col_name,...)reference_definition修改字段:案例:MariaDB [testdb]> alter table students change id sid smallint unsigned not null;Query OK, 0 rows affected, 1 warning (0.02 sec)Records: 0 Duplicates: 0 Warnings: 1| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}----------修改表字段的default字符集| CHANGE [COLUMN] old_col_name new_col_name column_definition------------------change把列名改名,并设置列的新选项[FIRST|AFTER col_name]| MODIFY [COLUMN] col_name column_definition---------------modify把⼀个字段的⽼定义改成新定义[FIRST | AFTER col_name]删除字段:drop| DROP [COLUMN] col_name-------删除某个键| DROP PRIMARY KEY--------删除主键| DROP {INDEX|KEY} index_name----------删除唯⼀键名| DROP FOREIGN KEY fk_symbol---------删除外键| MAX_ROWS = rows| DISABLE KEYS| ENABLE KEYS| RENAME [TO|AS] new_tbl_name| ORDER BY col_name [, col_name] ...| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]| [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name]| DISCARD TABLESPACE| IMPORT TABLESPACE| FORCE| ADD PARTITION (partition_definition)| DROP PARTITION partition_names| TRUNCATE PARTITION {partition_names | ALL}| COALESCE PARTITION number| REORGANIZE PARTITION [partition_names INTO (partition_definitions)]| ANALYZE PARTITION {partition_names | ALL}| CHECK PARTITION {partition_names | ALL}| OPTIMIZE PARTITION {partition_names | ALL}| REBUILD PARTITION {partition_names | ALL}| REPAIR PARTITION {partition_names | ALL}| PARTITION BY partitioning_expression| REMOVE PARTITIONINGindex_col_name: col_name [(length)] [ASC | DESC]index_type: USING {BTREE | HASH}index_option: KEY_BLOCK_SIZE [=] value | index_type | WITH PARSER parser_name | COMMENT 'string'table_options: table_option [[,] table_option] ... (see CREATE TABLE options)partition_options: (see CREATE TABLE options)为表增加⼀个字段MariaDB [testdb]> ALTER TABLE products ADD vend_phone CHAR(20);删除⼀个表的某个字段MariaDB [testdb]> alter table products drop vend_phone ;Query OK, 0 rows affected, 1 warning (0.07 sec)Records: 0 Duplicates: 0 Warnings: 1添加⼀个唯⼀键MariaDB [testdb]> alter table students add unique key(name);Query OK, 0 rows affected (0.07 sec)Records: 0 Duplicates: 0 Warnings: 0MariaDB [testdb]> desc students-> ;+--------+----------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+--------+----------------------+------+-----+---------+-------+| sid | smallint(5) unsigned | NO | PRI | NULL | || name | varchar(20) | NO | UNI | NULL | |查看表中的索引MariaDB [testdb]> show index from students;+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| students | 0 | PRIMARY | 1 | sid | A | 0 | NULL | NULL | | BTREE | | || students | 0 | name | 1 | name | A | 0 | NULL | NULL | | BTREE | | || students | 1 | age | 1 | age | A | 0 | NULL | NULL | YES | BTREE | | |+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+3 rows in set (0.00 sec)创建索引MariaDB [testdb]> help create indexName: 'CREATE INDEX'Description:Syntax:CREATE [ONLINE|OFFLINE] [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name[index_type]ON tbl_name (index_col_name,...)[index_option] ...index_col_name:col_name [(length)] [ASC | DESC]index_type:USING {BTREE | HASH}index_option: KEY_BLOCK_SIZE [=] value| index_type | WITH PARSER parser_name | COMMENT 'string'。
超详细的sql语句ddl(数据定义语言) 讲解SQL (Structured Query Language) is a standard programming language designed for managing and manipulating relational databases. In this response, I will provide a detailed explanation of SQL Data Definition Language (DDL) statements, which are used to define database structure and schema.DDL statements in SQL primarily consist of the CREATE, ALTER, and DROP commands. Let's take a closer look at each of these commands and their usage.The CREATE command is used to create new database objects such as tables, views, indexes, and stored procedures. For example, to create a new table named "users," you can use the following syntax:CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50),email VARCHAR(100));这段中文翻译:SQL(结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。
在本回答中,我将详细解释SQL数据定义语言(DDL)语句,它们用于定义数据库的结构和模式。
实验二 SQL语言数据定义语言DDL一、实验目的SQL(Structured Query Language语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。
掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。
掌握使用SQL语句定义和删除同义词。
二、实验要求1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。
三、实验的重点与难点1、重点:(1)用SQL语句定义表结构(创建、修改和删除)。
(2)用SQL语句定义索引(创建、删除)。
(3)用SQL语句定义视图(创建、删除)。
(4)用SQL语句定义同义词(创建、删除)。
2、难点:完整性约束的定义、增加及删除。
同义词的定义与删除。
四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程(一)实验预习(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。
(2)掌握完整性约束定义、增加和删除的一般用法。
(3)掌握同义词定义、删除的一般用法。
(二)实验原理在Navicat for MySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令对表结构进行修改及完整性约束的增加、删除。
【SQL】数据定义语⾔(DDL)数据定义语⾔所有语句都是基于oracle的HR⽤户create 创建对象,drop 删除对象,alter 修改对象,rename 修改数据库对象名称创建表语法格式:create table 表名(列名列数据类型)创建⽰例:列与列中间⽤,隔开create table dept(deptno number(2),dname varchar2(14),loc varchar2(13));Oracle数据库中的表⽤户表由⽤户创建和维护的表的集合,包含⽤户信息数据字典表由oracle服务器创建和维护的表,包含数据库信息。
如:HR⽤户就是oracle⽤来使⽤者练习的表。
常见的数据库字典表查询本⽤户下所拥有的表名称select table_name from user_tables;查看本⽤户所拥有的不同对象类型select distinct object_type from user_objects;使⽤distinct 是由于有⼀些重复的列进⾏祛除查看本⽤户所拥有的表、视图及序列select * from user_catelog;⽤查询创建表表名之后使⽤ as 连接查询进⾏创建,投影的列名就是创建的表create table dept80 as select employee_id,last_name,salary,hire_date from employees where department_id =80; alter table语句添加⼀个新列语法:alter table 表名 add(具体的列名,类型);⽰例:alter table dept add(salary number(8,2));修改⼀个已经存在的类型语法:alter table 表名 modify 具体的列名类型;修改默认值添加默认值alter table dept modify salary number(8,2) default 1000;删除默认值alter table dept modify salary number(8,2) default null;修改数据类型alter table dept modify name vchar2(40);修改列名(rename column)语法:alter table 表名 rename column 原列名 to 新列名;alter table dept rename column name to dname;删除⼀个列(drop column)语法:alter table 表名 drop column 列名;alter table dept drop column salary;需要注意的是在修改列名和删除列的时候需要加column修改名称(rename)语法:rename原表名 to 新表名;rename dept to dept40;截断表(truncate table)语法:truncate table 表名;truncate table dept;需要注意:在截断表中不需要给定条件,⽽delete需要给定条件;turntable 属于隐式事务,不⽀持rollback,⽽delete⽀持回滚删除表(drop table)语法:drop table 表名; 不⽀持回滚drop table dept;。
SQL语言的DDL实验报告范文实验目的本次实验的目的是学习和掌握SQL语言的DDL(数据定义语言),熟悉其基本操作和语法,能够独立完成数据表的创建、修改和删除操作。
实验环境本次实验使用的是MySQL数据库管理系统,在Windows系统下进行。
使用的版本为MySQL 5.7。
实验中使用的SQL语句均在MySQL Workbench中编写并执行。
实验步骤1. 数据表的创建首先,在MySQL中创建一个新的数据库,命名为mydb。
创建成功后,使用该数据库进行接下来的实验操作。
然后,我们需要创建一个新的数据表。
下面是我们要创建的数据表的结构:字段名类型长度备注id int 自动编号,主键name varchar 50 姓名age int 年龄gender varchar 10 性别phone varchar 20 手机号码address varchar 100 居住地址我们可以使用以下SQL语句来创建该数据表:CREATE TABLE mydb.students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10),phone VARCHAR(20),address VARCHAR(100));上述代码中,CREATE TABLE语句用于创建数据表,紧接着是数据表的名称mydb.students。
括号内是数据表的结构,每个字段之间用逗号隔开,每个字段包括字段名、类型和长度(有些类型不需要长度)。
其中,id字段为主键,并使用AUTO_INCREMENT进行自动编号。
执行以上代码后,我们就成功地创建了名为students的数据表。
2. 数据表的修改在实际使用过程中,我们有时需要对数据表进行修改,以满足新的需求。
在MySQL中,我们可以使用ALTER TABLE语句来进行数据表的修改。
例如,我们想要在students表中新增一个字段email,可以使用以下SQL语句来实现:ALTER TABLE mydb.studentsADD email VARCHAR(50);上述代码中,ALTER TABLE语句用于修改数据表,接着是数据表的名称mydb.students。
《数据库原理》实验报告专业:计算机科学与技术班级:09-3学号:409417080332姓名:张华超SQL语言的DDL一、实验目的:SQL Server 2000的查询分析器是一种特别用于交互式执行SQL语句和脚本的极好的工具。
SQL(Structured Query Language)语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
在本次实验中熟悉表的创建、删除、修改及索引的创建与删除二、实验内容1.启动数据库服务软件SQL Server 2000的查询分析器,用如下语句对表进行操作,详细的语法格式参看课本相应章节:Create Table 建表Drop Table 删除表Alter Table 更改表2.如下语句对索引进行操作,详细的语法格式参看课本相应章节:Create Index 建立索引Drop Index 删除索引三、实验任务1.打开数据库SQL Server 2000的查询分析器,用Create Table建表aa,表2.用Create Table建表bb,表结构如下所示(其中Bb1与Bb2的组合是主键):3.用Drop Table删除表aa。
4.用Alter Table修改表bb,添加一个字段Bb4,类型Varchar,长度20。
5.用Create Index对表Bb的Bb3字段建立一个升序索引,索引名Indexbb。
6.用Drop Index删除索引Indexbb。
Create Table aa(Aa1 Varchar (20) primary key,Aa2 Int,Aa3 Decimal);Create Table bb(Bb1 Varchar (30),Bb2 Int,Bb3 Decimal (6,2),primary key (Bb1,Bb2));Drop Table aa;Alter Table bb add Bb4 Varchar (20);Create Index Indexbb on bb(Bb3 asc );Drop Index bb.Indexbb;。
重庆理工大学实验二SQL语言的DDL(共5篇)第一篇:重庆理工大学实验二 SQL语言的DDL实验二SQL语言的DDL一.实习目的及要求:本次实验了解SQL的数据定义语句:(1)创建数据库、表、索引(2)增加、删除表结构(3)修改表结构二实习内容:用SQL语句建立SPJ数据库(见书P74,5),数据库名取自己的名字,如:张三。
2在建好了的SPJ数据库中建立S、P、J、SPJ共4个表的表结构。
要求:(1)为属性选择合适的数据类型;(2)为SPJ表增加一供应日期列,列名为SUPDATE,日期型;(3)定义每个表的主码;(4)定义上述4个表的表级约束:定义SPJ、S、P、J表之间的FOREIGNKEY(外码)约束。
(5)为S、P、J表的SNAME、PNAME、JNAME列定义UNIQUE 约束;约束名分别命名为UQ_SNAME, UQ_PNAME,UQ_JNAME;(6)实现DATE属性的Check(检查)约束: SUPDATE(7)删除P表PNAME列的唯一性约束(8)将P表中PNAME列的数据类型改为可变字符串型;用SQL语言在SPJ表上建立一个唯一性索引。
要求:按属性QTY的降序建立索引。
使用企业管理器(Enterpriser Manager),在数据库SPJ上建立一个关系图。
检查SPJ、S、P、J四表的关系是否正确。
5.将以上的SQL语言保存,提交实验报告。
第二篇:实验三 SQL语言的DDL实验三视图、存储过程的定义和使用一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解DDL语言的CREATE、DROP、ALTER对视图和存储过程的操作,学会SQL Server 2000的查询分析器中实现视图的创建、查看、修改和删除;实现对存储过程的创建、修改、撤消和运行。
SQL语言的DDL实验报告前言随着信息化时代的发展,数据的管理和处理越来越得到重视。
而SQL语言作为一种重要的数据管理语言,在实际应用中扮演着重要的角色。
本实验旨在通过学习实验资料并动手实践,掌握SQL语言的DDL(数据定义语言)的概念和应用。
实验目的1.掌握DDL语言的基本概念和语法;2.掌握利用SQL语言创建、修改、删除数据表的方法;3.学会使用SQL语言创建、修改、删除数据表后,实现数据的存储和查询。
实验环境为了完成实验,需要准备以下环境:1.安装MySQL数据库;2.安装MySQL Workbench;3.实验所需数据库。
实验步骤创建数据表打开MySQL Workbench,进入SQL Editor,输入以下SQL语句:CREATE DATABASE mydb;USE mydb;CREATE TABLE students(id INT(4) NOT NULL,name VARCHAR(20) NOT NULL,gender ENUM('男','女') NOT NULL DEFAULT'男',age INT(3) NOT NULL,PRIMARY KEY (id))这段代码的意思是:在mydb数据库中创建一个名为students的数据表,数据表包含以下字段:id、name、gender、age,其中id是主键,且不能为空。
查看数据表输入以下代码查看是否创建成功:SHOW TABLES;如果成功创建,会显示出students数据表。
插入数据通过以下SQL语句向students表中插入3条数据:INSERT INTO students (id, name, gender, age) VALUES(1, '张三', '男', 18),(2, '李四', '女', 19),(3, '王五', '男', 20);修改数据表实验要求修改数据表,在students表中增加一个score字段:ALTER TABLE students ADD score INT(3) DEFAULT0;更新数据输入以下代码,向学生张三的score字段更新数据:UPDATE students SET score=80WHERE name='张三';删除数据输入以下语句,删除数据表中张三的信息:DELETE FROM students WHERE name='张三';删除数据表输入以下语句,删除students数据表:DROP TABLE students;实验总结在本次实验中,我们通过实践掌握了SQL语言的DDL的概念和应用,学会了通过SQL语言创建、修改、删除数据表。
MySQL数据库第二章、数据定义语言(DDL)介绍目录一、创建数据表语句 (1)1.语法 (1)(1)字段名[注释]的重要性 (1)二、删除数据表语句 (2)1.语法 (2)三、修改数据表语句 (3)1.修改数据表名 (3)2.修改表字段 (3)(1)删除和添加表字段 (3)(2)修改字段名称和类型 (5)3.修改默认值 (6)(1)设置默认值 (6)(2)修改默认值 (7)MySQL-第二章、DDL语言介绍结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言分类:一、创建数据表语句1.语法Create table [if not exists] 数据表名(字段名1 类型1 [属性1] [索引1] comment[注释1],字段名2 类型2 [属性2] [索引2] comment [注释2],字段名3 类型3 [属性3] [索引3] comment[注释3],字段名n 类型n [属性n] [索引n] comment [注释n])[表类型] [表字符集] [注释];(1)字段名[注释]的重要性由于在字段设置过程中,需要使用英文,数据表经过长时间放置后,容易模1糊或者混淆字段含义,因此有必要对字段进行注释,以保证数据表的高效使用。
create table subject_test(StudentID int primary key comment “学生ID”,StudentName varchar(50) comment “学生姓名”);二、删除数据表语句MySQL数据库中使用删除命令需要格外谨慎,在执行删除命令后,存储中的数据会消息,且该操作无法恢复。
1.语法Drop table 数据表名;Drop table subject_test;2三、修改数据表语句1.修改数据表名Alter table 数据表名rename to 新数据表名;Alter table myclass rename to myclass_new;2.修改表字段(1)删除和添加表字段3Alter table 数据表名字drop 要删除的字段名; Alter table myclass drop ClassName;Alter table 数据表名add 字段名字段类型; Alter table myclass add ClassId int;45(2) 修改字段名称和类型修改字段名称:Alter table 数据表名 change 字段名 新字段名 新字段名类型 Alter table myclass change classname classname_new int;//需要格外注意的是:在修改字段名称时,新字段名必须指定数据类型,即使不打算更改字段类型,否则该命令会报错。
如何运用数据定义语言DDL?1,创建和维护数据表Oracle 创建表使用CREATE TABLE 语句。
如果用户在自己的模式中创建一个表,则该用户必须具有CREEATE TABLE 的权限。
代码演示:oracle 创建表CREATE TABLE STUDENT(STUID VARCHAR2(7) NOT NULL①, --学号STUNAME VARCHAR2(10) NOT NULL, --姓名GENDER VARCHAR2(2) NOT NULL, --性别SEAT NUMBER(2) NOT NULL, --座号ENROLLDATE DATE, --入学时间STUADDRESS VARCHAR2(50) DEFAULT ’地址不详’②, --住址CLASSNO VARCHAR2(4) NOT NULL,一班号TELEPHONE NUMBER(11) 一联系方式)代码解析:①NOT NULL 指定该字段不能为空。
②DEFAULT 指定该字段的默认值。
在创建表后,可能会需要根据项目需求的变化向表中增加或删除列,用户可以使用ALTER TABLE…ADD语句向表中添加字段,使用ALTER TABIE…DROP语句删除表中指定字段。
除了在表中增加和删除字段外,还可以根据实际情况修改字段的有关属性,包括修改字段数据类型的长度、数据列的精度、列的数据类型和列的默认值等,使用TABLE...MODIFY语句,其语法格式如下:ALTER TABLE table_name MODIFY column_name Column_property> talbe name:表示要修改的列所庄的表名。
> column name:要修改的列名。
> Column-propepty:要修改列的属性,包括数据类型的长度、数据列的精度、列的数据类型和列的默认值等。
在创建表后,用户可以修改指定表的名称,但用户只能对自己模式中的表进行重命名。
DDL(数据定义语⾔)DDL,是对数据库内部的对象进⾏创建,删除,修改等的操作语⾔。
它和DML语⾔最⼤的区别是DML只是对表内部数据的操作,⽽不涉及到表的定义,结构的修改,更不会涉及到其它对象。
1.连接数据库:注:1.mysql代表客户端命令,-u后⾯跟连接的数据库⽤户,-p表⽰需要输⼊密码。
2.命令的结束符⽤;或者\g结束2.创建数据库:格式:create database dbname;Query OK执⾏成功1 row affected 只影响了数据库中⼀⾏的记录。
0.13 sec 记录了操作执⾏的时间如果已经存在了这个数据库,系统如图会提⽰。
查看系统中存在哪些数据库:show databases;如图:information_schema:主要存储了系统中的⼀些数据库对象信息。
⽐如⽤户表信息、列信信息、权限信息、字符集信息、分区信息等。
cluster:存储了系统的集群信息。
mysql:存储了系统的⽤户权限信息。
test:系统⾃动创建的测试数据库,任何⽤户都可以使⽤。
选择遥操作的数据库:USE dbname;接下来查看改数据库的所有数据表:show tables;3.删除数据库:(所有表数据都会被全部删除)格式:drop database dbname;提⽰操作成功后,显⽰"0 rows affected"。
觉得疑惑,不⽤管它,在MySQL⾥,drop语句操作的结果显⽰都是"0 rows affected"4.创建表格式:create table tablename(column_name_1 column_type_1 constraints,column_name_2 column_type_2 constraints...)注:column_name是列的名字,column_type是列的数据类型,contraints是这个列的约束条件。
例如:创建⼀个emp的表。
第六节:数据定义语⾔DDLDDL:数据定义语⾔⽤到的关键字主要有create、drop、alter、rename、set、show、desc、usecomment:表⽰注释create1. create:作⽤是⽤来创建数据库、表、视图、索引、临时表等2. 名称规范:1. 数据库以db开头:db_name2. 表以tb开头:tb_name创建数据库1. 语法:create database [if not exists]数据库名 [default character set 字符集名称] [default collate 校对规则名称]1. [ ]:表⽰[]⾥⾯的内容是可选的2. if not exists:在创建数据库之前进⾏判断,如果不存在才会创建,如果存在也不会报错(避免数据库已经存在⽽重复创建的错误)3. [DEFAULT] CHARACTER SET:指定数据库的默认字符集4. [DEFAULT] COLLATE:指定字符集的默认校对规则2. 实例:数据库为db_test,指定其默认字符集为 utf8,默认校对规则为 utf8_chinese_ci(简体中⽂,不区分⼤⼩写)1. create database if not exists db_test default character set utf8 default collate utf8_chinese_ci创建表1. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性约束的过程2. CREATE TABLE 命令语法:其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的3. 创建表的语法:CREATE TABLE [if not exists] tb_name ([表定义选项])[表选项][分区选项];1. [表定义选项]的格式为:(列名列类型其他的关键词,...列名列类型其他的关键词)4. CREATE TABLE 语句的主要语法及使⽤说明如下:1. CREATE TABLE:⽤于创建给定名称的表,必须拥有表CREATE的权限2. tb_name:指定要创建表的名称,在 CREATE TABLE 之后给出,必须符合标识符命名规则。
数据库课程实验报告
2.修改表
(1)给用户表增加一个“出生日期”(birthday)字段,数据类型为datetime,不为空。
(2)给订单表增加一个“总付款”(payment)字段,数据类型为float,默认值为0。
(3)给订单表增加一个“提交时间”(ordertime)字段,数据类型为datetime。
(4)给书目表增加如下约束条件:stock必须大于0。
(5)给订单详情表增加相应约束条件:quantity默认值为1,且必须大于0。
(6)给用户表增加相应约束条件:name必须为唯一。
加约束条件最值,不需要加add constraint。
加约束条件为唯一值才需要。
3.插入数据
结果验证
实验过程中遇到的问题解决办法与实验体会(10分)【请注意:此处必须如实填写,为空或不适均扣10分】。