设为首页 加入收藏

TOP

数据库快速上手教程
2018-08-31 18:27:21 】 浏览:90
Tags:数据库 快速 上手 教程

SQL

SQL: structured query language,结构化查询语言(数据以查询为主:99%是在进行查询)

SQL分为三部分

DDL:

data definition language,数据定义语言,用来存贮维护数据的结构(数据库,表)
代表指令:crate,drop,,alter等

DML

data manipualation language, 数据操作语言,用来对数据进行操作(数据表中的内容)
代表指令:insert,delete,update等 其中DML中又单独分出一个类DQL(data query laguage:数据查询语言,select)

DCL

data control language,数据控制语言,只要负责权限管理(用户)
代表指令:grant revoke等

交互方式

客户端连接认证:连接服务器,认证身份 mysql -h[主机] -P[端口] -u[用户名] -p 发送SQL指令 show databases; – 查看所有的数据库 服务器接收SQL指令:处理SQL指令:返回操作结果 客户端接收结果:显示结果 断开连接(释放资源:服务器并发限制)exit/quit/‘\q’

SQL基本操作

基本操作:CRUD

将SQL的基本操作根据操作对象分类:分为三类:库操作,表操作(字段),数据操作

库操作

对数据库的增删改查
+ 新增数据库

基本操作
 注释:-- 双下划线+空格, 也可以使用 #号

create databases 数据库名字 [库选项];

库选项: 用来约束数据库,分为两个选项
    字符集设定:charset/character set 具体字符集(数据存储的编码格式):常用字符集:GBK和UTF8
    校对集设定:collate具体校对及(数据比较的规则)

当数据库中SQL语句执行后发生了什么?
1. 增加了对应的数据库信息
2. 保存数据文件夹下Data目录,创建一个对应数据库名字的文件夹
3. 文件夹下会有一个.opt文件,数据库库选项(字符集,校对集:校对集依赖字符集)

查看数据库

查看所有数据库:show databases; 查看指定部分数据库:模糊查询 show databases like ‘pattern’ – pattern 是匹配模式(%:表示匹配对各字符, _:表示匹配单个字符)注意:其中包含_ 需要‘\’转义 查看数据库的创建语句:show create database [databasename];

更新数据库

数据库名字不可修改。
数据库仅限修改库选项:字符集和校对集(校对集依赖字符集)
alter database 数据库名字 [库选项];
charsett/character set = 字符集
collate 校对集

删除数据库

drop database 数据库名;

删除数据库语句后发生了什么?
1. 在数据库内部看不到对应的数据库
2. 对应的数据库存储文件夹内:数据对应名字的文件夹也被删除(级联删除)
注意:数据库不要随意删除应,应先备份后操作(删除不可逆)

表操作

表与字段密不可分。

新增数据表

create table [if not exists] 表名(
    字段名 字段类型,
    字段名 字段类型  -- 最后一行不需要加逗号
    )[表选项];

    if not exists 做表名不存在就创建,否则不执行创建代码:检查功能
    表选项:控制表的表现
        1. 字符集 charset/character set 具体字符集; -- 保证表中数据存储的字符集
        2. 校对集:collata 具体校对集;
        3. 存储引擎:engin 具体存储引擎(innodb和myisam)

创建数据库语句出错,no database selected 没有选择数据库。

方案一:显示的指定表所属的数据库
create table 数据库名.表名();  -- 将当前数据表创建到指定数据库下

方案二:隐式指定表所属的数据库:先进入某个数据库环境,然后创建的表就自动归属到指定数据库
进入数据库(使用数据库): use 数据库名字;

创建数据表sql指令执行后发生了什么?
1. 在指定数据库下已存在对应的表
2. 数据库文件夹下会产生对应表结构的文件(和存储引擎相关) .frm 文件

查看数据表

查看所有表:show tables; 查看部分表:show tables like ‘%s’; 查看表的创建语句:show create table; 查看表结构:查看表中字段信息:desc/describe 表名; show collumns from 表名;

修改数据表

表本身,字段两部分

修改表本身

表本身修改:表名,表选项

修改表名:rename table 旧表名 to 新表名;

修改表选项:字符集,校对集和存储引擎
alter table student charset GBK;

修改字段

字段操作:新增,修改,重名,删除

新增字段;
alter table 表名 add [column] 字段名 数据类型 [列属性][位置];
位置:字段名存在表中的任意位置
first: 第一个位置
after: 在某一个字段之后;默认在最后一个字段之后;

修改字段:修改通常是该属性或者数据类型
alter table 表名 modify 字段名 数据类型 [属性][位置];

重命名字段

alter table 表名 change 旧字段 新字段 数据类型 [属性][位置];

删除字段

alter table drop 字段名;
小心:如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆);

删除数据表

drop table 表名1,表名2.。。;可以一次性删除多张表

删除数据表指令执行后发生了什么?
1. 在表空间中,没有了指定的表(数据也没了)
2. 在数据库对应的文件夹下,表对应的文件(与存储引擎有关)也会被删除
注意:删除有危险,操作需要谨慎(不可逆)

数据操作

新增数据

两种方案
方案1:给全表插入数据,不需要指定字段列表,要求数据的之出现的顺序必须与表中设计的字段出先的顺序一直:凡是非数值数据,都需要使用引号(建议单引号)包裹

insert into 表名 values(值列表),(值列表),(值列表),… – 可以一次性插入多条记录

方案2:给部分字段插入数据,需要选定字段列表:字段列出表现的顺序与字段顺序无关;但是只列表顺序必须与选定字段顺序一致。

insert into 表名 (字段列表) values(值列表),values(值列表),… – 可以一次性插入多条记录

查看数据

查看所有
select */字段列表 from 表名;

查看指定字段,指定条件的数据
例如:select id, num, name from student where id=1;

更新数据

update 表名 set 字段 = 值 [where条件]; – 建议都使用where ,没有where条件的是更新全部内容

更新不一定会成功:当数据更新没有变化时就会显示皇后影响条数0条;

删除数据

删除不可逆:谨慎删除

delete from 表名 [where条件];

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇mysql数据库不能添加中文字符问题.. 下一篇mysql启动和关闭外键约束的方法解..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目