本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • MySQL
  • MySQL基础教程(3)数据库基本介绍与DDL语句

MySQL基础教程(3)数据库基本介绍与DDL语句

发布:TangLu2019-1-3 12:46分类: MySQL 标签: mysql

一、什么是SQL语言

SQL是结构化查询语言的英文单词缩写,已经是关系型数据库的标准。主要用于存取、查询、更新、管理数据库系统,SQL语言分为三种类型:

数据库定义语言(DDL):数据库、表、索引的创建语句、删除与修改语句,如CREATE、DROP、ALTER

数据库操纵语言(DML):增删查改语句,如INSERT、UPDATE、DELETE、SELECT(也有把SELECT定义为DQL的)

数据库控制语言(DCL):控制用户权限的语句,如GRANT、REVOKE


二、MySQL默认数据库介绍

每一个数据库都以目录形式存放在datadir所定义的目录中,而每一个数据库目录中存放的是许多表。MySQL在初始化完成后自带了几个数据库:

information_schema:主要存储系统中一些数据库对象信息,如用户信息、列信息、权限信息、字符信息等

performance_schema:主要存储服务器性能参数,如慢查询、死锁等

mysql:存储了用户的权限信息

sys:主要存储服务器性能参数


三、MySQL常用引擎介绍

MyISAM存储引擎:5.5默认存储引擎,不支持事务,表锁,8.0已经废弃。

InnoDB存储引擎:5.7默认存储引擎,也是目前主要使用的引擎。支持事务,支持行级锁,支持外键约束、自动增长列

Memory:数据存放于内存中,速度很快,但是存在数据丢失问题


四、MySQL数据库DDL语句使用语法

1、MySQL的数据都是存放在每个库中的各个表里,所以先看看如何管理

mysql > create database NEWDATABASE1;  #创建名为NEWDATABASE1,数据库名区分大小写
mysql > create database NEWDATABASE2 if not exists;  #如果指定的数据库不存在才进行创建
mysql > show databases;  #显示所有数据库
mysql > use NEWDATABASE1  #进入指定数据库
mysql > drop database NEWDATABASE2;  #删除指定数据库
mysql > drop database NEWDATABASE2 if exists  #如果指定的库存在才进行删除


2、有了库以后就可以创建表了,在每张表中每行都是数据,而每列称为字段属性每一种属性保存数据类型可能是不一样的,所以要为不同数据指定不同数据类型,常见数据类型如下:

字符串类型:CHAR(定长)、VARCHAR(变长),字符串类型虽然也可以插入数字,但是无法作比较运算

数值类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、FLOAT等

TEXT类型:TINYTEXT、TEXT、LONGTEXT

枚举类型:ENUM,让用户从给出的条件中进行单项选择,通常用于性别

集合类型:SET,多选

时间和日期类型:DATE、TIME、DATETIME、TIMESTAMP


3、数据类型的属性

NULL:数据列可包含NULL值

NOT NULL:数据列不可包含NULL值

DEFAULT:为数据列设置一个默认值

PRIMARY KEY:主键

AUTO_INCREMENT:自增列


五、MySQL管理表的常用命令示例:

1、首先需要指定给哪个数据库创建表格,所以需要先切换到对应数据库

use database1;


2、使用create语句创建一个名为student1的表格,建议对每列字段名都加上反引号,防止关键词问题;并且指定默认字符集和校对规则

create table student1(
`id` int not null auto_increment primary key,  #字段名为id,类型为int,不能为空,自增,唯一主键
`name` varchar(10),  #字段名为name,varchar类型,长度为10,数据超过10个字符就无法插入
`sex` enum('m','f'),
`age` int;) ENGINE = innodb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;


3、查看当前库中的所有表格

show tables;
show create table table_name \G  #查看建表所用语句


4、使用alter语句修改表本身的属性

#alter table <旧表名> rename <新表名>;  #修改表名
#alter table <表名> modify <字段名> <新的数据类型>;  #修改字段的数据类型,修改的时候需要保留原有的约束条件,这里并没有加
#alter table <表名> change <旧字段名><新字段名><新的数据类型>;  #修改字段的名称
alter table t1 change name fullname varchar(10); 
#alter table <表名> add  <新字段名><新的数据类型> [约束条件] [first | after 已存在字段名];   #添加字段或者约束
alter table t1 add location varchar(20) not null after name;  #在name列后面加新的一列,名称为location
#alter table <表名> drop <字段名>;  #删除字段
#alter table <表名> engine=<新的存储引擎>;  #更改表存储引擎
alter table t8 engine=InnoDB    
alter table <表名> drop foreign key <外键名>;  #删除表的外键约束,删除所有的外键之后,才能删除对应主键所在的表

5、查看表的详细结构,包括每行数据是否可以为空、是否有约束条件、默认值等信息

DESC 表名; 
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《MySQL基础教程(3)数据库基本介绍与DDL语句
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-123.html  [生成短网址]

已有 0/2251 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~