mysql复习(2)
一、数据定义:
SQL数据的定义包括模式的定义、表定义、视图定义和索引的定义。
1.基本的模式定义情况如下表。
2.一个关系数据库管理系统的实例中可以创建多个数据库,一个数据库中可以建立多个模式,一个模式下面通常包括多个表、视图和数据库对象。
二、模式的定义与删除
1.定义模式:CREATE SCHEMA <模式名> AUTHORIZATION<用户名>;
(1)要创建模式,要调用该命令的数据库管理员权限,获得数据库管理员授予的CREATE SCHEMA的权限
(2)为用户WANG定义一个学生-课程模式S-T
CREATE SCHEMA AUTHORIZATION WANG
2.删除模式:
(1)DROP SCHEMA <模式名><CASCADE|DESTRICT>
DROP SCHEMA ZHANG SCACADE
在语句中删除了模式的通式,该模式中定义的表也会被删除
三、基本表的定义与删除
1.定义基本表
CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束条件]
[,<列名<数据类型>[列级完整性约束条件]]
。。。。
[,<表级完整性约束条件>]
);
(1)创建一个“学生”表Student,列级完整性约束条件,Sno是主码,Sname取值唯一
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage CHAR(2),
Sdept CHAR(20)
);
系统在执行上面的语句之后,就会在数据库中建立一个新的空的学生表Student,并将有关学生表的定义及有关约束条件存放在数据字典中。
(2)创建一个“课程”表Course
CREATE TABLE course
(Cno CHAR(4) PRIMARY KEY, //列级的完整性约束条件,列名是Cno,数据类型是CHAR(4),列级完整性约束条件,Sno是主码
Cname CHAR(40) NOT NULL, //列级完整性约束条件,Cname不能取空值
Cname CHAR(40) NOT NULL, //列级完整性约束条件,Cname不能取空值
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY(Cpno) REFERENCES Course(Cno) /*表级完整性约束条件,Cpno是外码,被参照表示Course,被参照列是Cno*/
);
(3)建立学生选课表SC
CREATE TABLE SC
(Sno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno), /*主码有两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY(Sno) REFERENCES Student(Sno),/*表级完整性约束条件,Sno是外码,被参照的表示Student*/
Foreign KEY(Cno) REFFERENCES Cources(Cno)
/*表级完整性约束条件,Cno是外码,被参照的表是Course*/
);
2.修改基本表
(1)一般格式为:
ALTER TABLE<表名>
[ADD [COLUMN]<新列名><数据类型>[完整性约束]]
[ADD<表级完整性约束>]
[DROP [COLUMN]<列名>[CASCADE|RESTRICT]]
[DROP CONSTRAINT<完整性约束名> [RESTRICT |CASCADE]]
[ALTER COLUMN <列名><数据类型>];
(2)<表名>是要修改的基本表,ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件。DROP COLUMN子句用于删除表中的列,如果指定了CASCADE短语,那么就自动删除引用了该列的其他对象,比如视图;如果指定了RESTARICT短语,则如果该列被其他对象引用,RDBMS将拒绝删除该列。DROP CONSTRANT子句用于删除指定的完整性约束条件。ALTER COLUMN子句用于修改原有的子句和数据类型
(3)向Student表中增加“入学时间”列,其数据类型为日期类型
ALTER TABLE Student ADD S_entrance DATE; /*不论原表中是否有数据,新增的一列一律为空值*/
(4)将年龄的数据类型由字符型改为整数
ALTER TABLE Student Alter COLUMN Sage INT;
(5)增加新课程名称必须取唯一值的约束条件
ALTER TABLE Course ADDUNIQUE(Cname);
3.删除基本表
(1)当某个表不再需要的时候,可以使用Drop Table语句来删除它。其一般的格式为:
DROP TABLE<表名> [RESTRICT|CASCADE];
(2)这个地方的RESTRICT表示删除的表是由限制条件的,欲删除的基本表不能被其他表的约束所引用(如CHECK,FOREIGN KEY等约束条件),不能有视图,不能有触发器,不能有存储过程或者函数等。如果存在这些依赖该表的对象,则不能被删除。而CASCADE则没有限制条件。在删除基本表的同时,相关的依赖对象,例如视图都会被一起删除掉。
(3)删除Student表
DROP TABLE Student CASCADE;
这里需要注意,基本表定义一旦被删除,不仅表中的数据和表的定义将被删除,而且这个表上建立的索引、触发器等对象一般也会被删除。有的关系数据库管理系统还会删除在此表上建立的视图。如果欲删除的基本表被其他基本表所引用,则这些基本表也可能别删除。例如SC表通过外码Sno引用Student,则在删除Student表之后,SC也被级联删除。
(4)若表上建有视图,选择RESTRICT时表不能删除;选择CASCADE时可以删除表,视图也自动被删除。
CREATE VIEW IS_Student /*Student表上建立视图*/
AS
SELECT Sno,Sname,Sage
FROM STUDENT
WHERE Sdept='IS';
DROP TABLE Student CASCADE; //删除Student表,此表上的视图也会被删除
DROP TABLE Student RESTRICT; /*删除Student表*/,系统提示存在依赖该表的对象,该表不能被删除
四、数据查询
1.select语句的一般格式为:
SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]...
FROM<表名或者视图名>[,<表名或者视图名>]|(<Select语句>[AS]<别名>
[WHERE<条件表达式>]
[GROUP BY<列名1>[HAVING<条件表达式>]]
[ORDER BY <列名2>[ASC|DESC]]
(1)整个SELECT语句的含义是,根据WHERE子句的条件表达式从FROM子句指定的基本表、视图或者派生表中找出满足条件的元祖,再按照SELECT子句中的目标列表达式选出元组中的属性形成结果表。
(2)如果有GROUP BY子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组。通常会在每组中作用聚合函数。
(3)如果GROUP BY子句带有HAVING短句,则只有满足指定条件的组才予以输出。
(4)如果有ORDER BY子句,则结果表还要按照<列名2>的值的升序或者降序进行排序
2.单标查询:仅涉及一个表的查询
(1)选择表中若干列:即关系代数的投影运算。
(2)查询全体学生的学号与姓名
五、MySQL基本命令
1.DDL:Data define language,数据定义语言。[create,drop,alter]
(1)mysql>show databases; //查询哪些数据库,库是表的集合
(1)mysql>exit; //退出client
(1)mysql>user mhive; //使用指定的数据库
(1)mysql>show tables; //查看数据库中含有哪些表
(1)mysql>create databases big3; //创建数据库
(1)mysql>drop databases big3; //输出指定的数据库
2[table]
mysql>create table mytable(id int ,name varchar(20)); //创建表
mysql>show tables;
mysql>drop talbes;
3[SQL:structure querry langeuage,结构化查询语言]
mysql>select * from test;
mysql>select * from test where id= 1;
mysql>insert into test(id,name) values(1,'tom'); //插入数据
mysql>update test set name ='jerry';
mysql>update test set id=3,name='jerry' where id =1 ; //插入语句
mysql>delete * from test;
mysql>delete * from test where id=1;
mysql>delete * from test where id<1;
mysql>delete * from test where id!=1; //不等于
mysql>delete * from test where id<>1; //ok 不等于
mysql>delete * from test where id><1; //not ok
mysql>select * from test where name='tom'; //mysql不区分大小写
mysql>select id,name from test where name ='tom'; //投影查询projection
mysql>select id,name from test where name like 't%'; //模糊查询,以t开头
mysql>select id,name from test where name like '%t'; //模糊查询,以t结尾
mysql>select id,name from test where name like '%t%'; //模糊查询,含有t,%通配多个字符
mysql>select id,name from test where name like '%t_';模糊查询,含有t,_匹配一个字符
mysql>desc test;
mysql>describe test;
mysql>select distinct * from test;
mysql>select * from test where name is null; //null值查询,is not null
mysql>create table users(id int primary key auto_increment,name varchar(20),age int);//创建主键,字段自增(auto_increment)
[复制表]
mysql>create table t2 like t1; //类似创建表结构,不含数据
mysql>create table as select * from users; //类似创建表结构,含数据
mysql>create table test.t2 as slect * from big3.users; //复制不同库中的表
[CRUD]
create //insert
retrieve //select
update //update
delete //delete
mysql>
mysql>
mysql>
mysql>
mysql>
mysql>
mysql>
mysql>delete * from test where id<=1;
mysql复习(2)的更多相关文章
- mysql复习秘籍
mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用 ...
- mysql复习-来源考试
mysql复习- No1 .登录和权限 (一)常用命令1.登录mysqlmysql -h localhost -u root -p 2.重启mysqlservice mysql restart 延 ...
- MySQL复习值代码知识点(1)
MySQL复习值代码知识点 一. 创建数据库 create database 数据库名: 二. 删除数据库 drop database 数据库名: 三. 选择相应的数据库 use 数据库名: 四. 创 ...
- mysql复习相关
Mysql相关 mysql增删改查 我们需要修改数据表名或者修改数据表字段时,就需要使用到Mysql Alter命令 删除,添加或修改表字段 alter table student drop regi ...
- 一天一点MySQL复习——获取数据库系统时间、变量赋值、变量比较
一.SQL获取系统时间 mysql> select now() from dual; +---------------------+ | now() | +------------------- ...
- Mysql 复习
1.my.ini :mysql 配置文件 [client]#password = your_passwordport = 3306socket = /tmp/mysq ...
- mysql 复习与学习(二)数据库及表结构的创建删除
mysql -h localhost -uroot -p123456 //连接数据库 show databases; //查看数据库 create database if not exists db_ ...
- mysql复习
1.数据库操作 CREATE DATABASE 数据库名 charset utf8; 查看数据库 show databases; show create database db1; select da ...
- Mysql复习大全(转)
基础知识: 1.数据库的连接 mysql -u -p -h -u 用户名 -p 密码 -h host主机 2.库级知识 显示数据库: show databases; 选择数据库: use dbname ...
- mysql复习之一
DROP DATABASE mysql_shiyan;. cd /home/shiyanlou/Desktop git clone https://github.com/shiyanlou/SQL4 ...
随机推荐
- 四、SpringBoot出现报错:java.lang.NoSuchMethodError: org.springframework.http.MediaType.equalsTypeAndSubtype(Lorg/springframework/util/MimeType;)Z
idea启动SpringBoot项目后,出现如下错误: 2019-11-19 15:24:44.344 ERROR 39168 --- [nio-8443-exec-1] o.a.c.c.C.[.[. ...
- 小程序API:wx.showActionSheet 将 itemList动态赋值
1.发现问题: 小程序调用API:wx.showActionSheet 时发现无论如何都不能将其属性itemList动态赋值. 2.分析问题: 首先我认为可能是格式的问题,itemList必须要求格式 ...
- Python3命名规范
1.模块 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况) # 正确的模块名 import decoder import html_parser # 不推荐的模 ...
- springboot整合mybatis时java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
时区问题造成的,解决方法是在数据源配置文件中在数据库链接处增加参数&serverTimezone=GMT%2B8对时区进行配置,配置为东八区. 修改前:spring.datasource.ur ...
- jdk1.8-Vector
一:先看下类的继承关系 UML图如下: 继承关系: ))) ))) grow(minCapacity)) ? ) newCapacity = minCapacity) ) , elementData, ...
- mpVue学习笔记整理
第一章: mpVue(Vue in Mini Program) 1.1 简介 美团工程师推出的基于Vue.js封装的用于开发小程序的框架 融合了原生小程序和Vue.js的特点 可完全组件化开发 1.2 ...
- Django模板系统-内置和自定义Filters
django模板中最常用的两种特殊符号是 {{ }} 用来表示变量和 {% %} 用来表示逻辑相关的操作 变量 {{ 变量名 }} ,由字母数字下划线组成而.在模板语言中有特殊含义,用来获取对象相应的 ...
- 系统 --- Linux系统环境搭建
Linux命令介绍 软硬链接 作用:建立连接文件,linux下的连接文件类似于windows下的快捷方式 分类: 软链接:软链接不占用磁盘空间,源文件删除则软链接失效 硬链接:硬链接只能链接不同文件, ...
- 【AMAD】stackprint -- 为Python加入利于调试的traceback信息
简介 动机 作用 用法 热度分析 源码分析 个人评分 简介 为Python加入利于调试的traceback信息.  动机 Python抛出异常时,会显示一些traceback信息.但是,一些时候这些 ...
- SolidWorks学习笔记3几个草图实例
绘制五角星 创建一个正五边形的内切圆,圆心和圆点重合,注意垂直关系. 选中所有,都设置为构造线. 依次连接直线, 点击裁剪实体,划过所要删除的线段. 绘制高度对称草图 注意事项: 最上和最下的圆心要和 ...