mysql支持结构化查询语言_SQL结构化查询语言及Mysql基本操作

SQL结构化查询语言

数据操作(管理)语言(DML,DataManipulationLanguage)(DQL+DML)

DQL 查询:获得数据。

DML 管理:增加,删除,修改数据。

数据定义语言(DDL,DataDefinitionLanguage)对保存数据的格式进行定义。

数据库控制语言(DCL,DataBaseControlLanguage)针对数据库软件服务进行操作。

09d99d4dccb53fd601d1134f86d64a89.png

SQL=DDL,DML(DQL+DML),DCL

**数据库操作:**DDL

创建数据库

create database [if not exists] 数据库名 [数据库选项] ;

eg:

create database liguodong;

create database `1234`; 特殊字符串

create database `create`; 关键字

set names GBK;

create database `成都`;

数据库名:可以是任意字符(目录可以创建成功),但特殊的字符需要使用反引号包裹。标识符的大小写区别于操作系统的大小写特征。

If not exists 表示在数据库不存在时创建。

数据库选项中,可以设定数据库字符集(character set utf8)和校对集(collate utf8_general_ci)。

注:

语句要求要使用语句结束符 ;

标识符(数据库)命名规则:

大小写取决于当前操作系统(认为是区分的)

见名知意。推荐使用下划线方式。

标识符的字符:

使用任意字符,数字,符号甚至是中文。但是一些特殊的组合,例如纯数字组合,特殊符号,包括mysql是内部关键字,应该使用标识符限定符来包裹。

限定符:反引号。

中文可以,但是不建议使用。(字符集编码要正确)set names GBK;

每当我们创建一个数据库,在mysql的数据目录,形成一个目录,目录名是数据库名(如果是特殊字符,则使用编码的形式保存)。目录内,存在一个文件,用于保存数据库的选项信息。db.opt

查询数据库

查询已经存在的数据库:

show databases [like 'pattern'] show databases;

like pattern 指的是显示符合哪些命名规则的。不存在指的是所有的数据库。

查询创建数据库的语句:show create database db_name;

9ca32a6669efac7c9bbd4f71a47abe4a.png

注意:并不是只有用户可以创建数据库,还有mysql内部维护自己的数据库。

删除数据库

drop database [if exists] db_name; 慎用

drop database test;

If exists 表示数据库存在才删除。

当删除一个数据库时,同时删除该数据库相关的目录及其目录内容。

修改数据库

alter database db_name [修改指令] alter database test character set gbk;

指令:数据库属性的修改。

修改名字:

方式一、简单的可以直接修改目录名。(并不适用所用方式)

方式二、将数据库内容导出,新建一个数据库,将内容导入,删除旧数据库。

表操作

数据库是表的容器。

表必须数据某个数据库。

可以通过.语法指明所属的数据库。eg: 库.表 database.table。如果任何的标识符,出现的特殊字符,需要使用反引号包裹。不同的标识符需要分别包裹。

进行表操作时,都会指定当前的默认数据库。

use db_name;

注意:选择了默认的数据库,只会影响默认行为。可以操作任何的数据库。

创建表

create table [if not exists] tbl_name (列定义) [表选项] create table [if not exists] tbl_name like old_tbl_name;

create table [if not exists] tbl_name select 语句;

eg:

create table liguodong.classroom( stu_id varchar(20), stu_name varchar(20), stu_data date );

465af6abd12590142f2bf9379b5c81cf.png

每当创建一个表,会在数据目录创建对应的文件保存表信息。

先分析,需要保存的实体数据,拥有哪些属性,这些属性应该如何保存。

例如:学生信息

学号,姓名,出生日期

列定义:

列名:列的数据类型[列的属性 (约束)]

查看表

show tables [from db_name] [like ‘pattern’];

如果没有数据库名,则采用当前数据库,如果没有like,则获得所有表。

eg:

use liguodong;

show tables;

show tables from liguodong;

3abd9a4bf02de6cff885e648789a7449.png

表名前缀:

为了区分相同逻辑表名的不同应用,给逻辑表名,增加前缀,形成真实表名。

/*学生管理系统*/

create table info_student( stu_name varchar(20), stu_no varchar(20) );

/*在线考试系统*/

create table exam_student( stu_name varchar(20), stu_no varchar(20) );

99b6f46d565a56e4f14fceb525fab1d9.png

show tables like 'exam_%';

%称之为通配符,表示任意字符的任意个数的组合。

297d4eae9fc31236e00197f492a489d0.png

show create table exam_student;

099cc3558d1100a3021f14db62543cf2.png

当一个数据非常多的时候,可以使用\G作为语句结束符。

20ad187c202a0f731aea82e7dbde26d3.png

describe liguodong.exam_student;

350a6be6d7dfe7cd015f4f7cb05977b1.png

数据库对应目录,而数据库中的内容对应目录的内容,文件。

adb953a15cd6d0d39db17ab6b02d9054.png

删除表

drop table [if exists] tbl_name;

eg:

drop table exam_student;

表不存在,不能删除,会报告错误。

drop table if exists exam_student;

不会报错,因为已经做了一次判断。

修改表

重命名表名:rename table tbl_name to new_tbl_name; 。可以同时针对多个表进行重命名,甚至可以跨数据库。

修改表结构:alter table。可以提供对表选项和列定义的修改。

重名名相当于剪切操作

eg:

rename table classroom to stu_class;

支持同时修改多个表名。

rename table classroom to stu_class,info_student to exam_user;

支持跨数据库重命名。

rename table exam_user to `1234`.user;

重命名数据库(数据库不支持rename) 创建一个新的数据库,就的数据库内的表,都rename到新的数据库内,删除旧的数据库。

交换两张表的表名

create table tab1( tab1_id int );

create table tab2( tab2_id int );

rename table tab1 to temp,tab2 to tab1,temp to tab2;

desc tab1;

8358db0a5705a05258cd050958cdbce0.png

640bf47d3733fd4f41a0d555f28bd0ef.png

修改列定义:

add 增加 可以同时增加多个列,使用括号括起来多个列的定义。

modify 修改

change 重命名

drop 删除

修改表结构:

alter table exam [add|drop|change|modify] eg: 添加: alter table info_student add age int;

desc info_student;

删除:

alter table info_student drop age;

desc info_student;

修改:

alter table info_student modify stu_no varchar(40);

desc info_student;

重命名:

alter table info_student change age stu_age int;

desc info_student;

d6ecd9b1dd2f9b1ad1442eb63584bea0.png

e378860af7502b93b75b1d7bebc7c162.png

修改表选项

alter table info_student character set gbk;

08e95a888379796c21d8d6d3b413b57c.png

原文链接:https://blog.csdn.net/scgaliguodong123_/article/details/46453213

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值