MySQL基础

一、数据库的操作

1.SQL分类:

DDL(数据定义语言)   :数据定义语言 - Data Definition Language,用来定义数据库的对象,如数据表、视图、索引等。常用指令:create   drop  alter  truncate

DML(数据操作语言):数据处理语言 - Data Manipulation Language,在数据库表中更新,增加和删除记录。常用指令:update, insert, delete 不包含查询

DCL(数据控制语言) :数据控制语言 – Data Control Language,指用于设置用户权限和控制事务语句。常用指令:grant,revoke,if…else,while,begin transaction

DQL(数据查询语言) :数据查询语言 – Data Query Language,数据表记录的查询。常用指令:select

2.数据库操作语言:

2.1 查询当前所有的数据库:                           show     databases;

2.2 查看数据库的编码:                                  show     create   database     库名;

2.3 创建数据库

(1)  create   database  库名;:由于创建数据库的是后没有指定编码表,使用安装时默认的编码表

(2)  create   database  库名  character   set   编码表名  ;  创建数据库,使用指定的编码表

(3) drop    database    库名     ;    删除数据库

       (4) alter    database   库名  character    set    编码集;                 修改数据库编码集

(5)  use    库名  ;   切换数据库

(6) select   database() ;   查询当前正在使用的数据

2.4 数据表结构语句

  1.   create table 表名(     
    列名 数据类型,
  2. 列名 数据类型,
  3. ……
  4. 列名 数据类型 (最后一个列不需要逗号)
  5. );
    注解:char vachar的区别?
  6.  
  7. char 的性能好。 varchar可以节省空间 ,通常时候,如果长度不固定,我们使用varchar
  1.  

                      (1) show  tables  :查看该数据库的说有表

(2) show  create  table   表名 ;     查看建表语句

(3) desc  表名;查看表结构(表列)

(4) 主键约束:  primary    key     auto_increment   (主键自增)

注解:作用:设置某一个字段为主键,主键的特性是唯一(不能重复),并且不能为空。

一般使用一个没有任何意义的字段,比如id作为一个主键(没有意义就不需要修改)。

如果主键是一个int类型,还可以设置主键自增长。(即在插入记录的时候可以不用设置主键,让其自动以递增的形式添加)

一张表中只能有一个主键。

  1. create table 表名 (
  2.         id int primary key auto_increment,
  3.         name varchar(20),
  4.         ………….
  5.            ); 

(5) 唯一约束:

  1.           唯一约束:unique 内容不允许重复,可以为nullnull不算重复)。
  2.           一个表里可以添加多个唯一约束。
  3.  
  4.           写法: 列名 类型(长度) unique
  5.           【示例】
  6.           create table 表名 (
  7.         id int primary key auto_increment,
  8.         name varchar(20) unique,
  9.         ………….
  10.           );
  11.  
  12.           唯一约束和主键约束的区别
  13.           1、唯一约束可以是空(null)。 但是主键约束不能为空
  14.           2、一张表中只能有一个主键,但是唯一约束可以有多个

                     (6)非空约束

  1.     非空约束:not null 。不允许为空。 表示该列的内容不允许为空。
  2.  
  3. 写法: 列名 类型(长度) not null,
  4. 【示例】
  5. create table emp(
  6. id int primary key auto_increment,
  7. name varchar(20) unique,
  8. age int not null,
  9. ………….
  10. );

      2.5 数据表结构的修改

(1) 增加一列  :alter   table     表名      add   列名     类型(长度)    约束;

(2) 修改现有列:   alter   table     表名      modify      列名      类型    约束;

(3) 修改现有列名称:  alter   table    表名    change    旧列名     新列名     类型       约束;

(4) 删除现有列:   alter  table   表名      drop    列名

(5) 修改表名:  rename    table   旧表名   to    新表明

(6) 修改表的字符集:  alter    table     表名     character   set   编码集

(7) 删除表 :drop    table    表名

(8) 查看mysql服务的所有客户端和服务端使用的字符集:show variables like 'character%';

(9)  先删除表,在创建表: truncate   table     表名;

(10) 事物:

start      transaction;

commit  (成功)

rollback (回滚)

2.6、一些常用:

select   distinct  列名     from  表名   [ where 条件]                       去重

ifnull(列名,默认值)      判断该列是否为null,如果为null,返回默认值,否则返回实际值。

round(数值,小数的位数)                   实现四舍五入的结果

  1. 执行顺序:select …要显示的内容.. from …表名.. where 条件…. group by …分组的列 having …分组后的条件… order by …排序
  2.  
  3. select …… from ….. where ….. group by ..…having ..… order by ....
  1. from 表名
  2.  
  3. where 条件:
  4. 逻辑运算符:and or not
  5. 比较运算符:< > <= >= <> =
  6. 在....之间:between...and...
  7. in(set):任意set集合中的一个条件成立即可
  8. is null/is not null
  9. 模糊匹配:like % _
  10.  
  11. group by 列:对列进行分组。
  12.  
  13. having 条件:
  14. 逻辑运算符:and or not
  15. 比较运算符:< > <= >= <> =
  16. 在....之间:between...and...
  17. int(set)
  18. is null/is not null
  19. 模糊匹配:like % _
  20. 聚合函数(sum,avg,max,min,count
  21. 别名
  22.  
  23. order by desc/asc

  

数据备份: mysqldump -u 用户名 -p 数据库名 > 磁盘SQL文件路径

建表后添加外键约束: alter table 从表名称 add foreign key (外键列的名称) references 主表名称(主键)         

  1. 建表时添加外键约束
  2.  
  3. /*创建部门表*/
  4. create table dept(
  5. id int primary key auto_increment,
  6. name varchar(20)
  7. );
  8. /*创建员工表*/
  9. create table employee(
  10. id int primary key auto_increment,
  11. name varchar(20),
  12. age int ,
  13. salary double,
  14. dept_id int,
  15. foreign key (dept_id) references dept(id)
  16. );

  

     

Mysql--基础(一)的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  4. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  5. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  6. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  7. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL基础(五)——视图

    MySQL基础(五)--视图

  10. MySQL基础(四)——索引

    MySQL基础(四)--索引

随机推荐

  1. vim学习纪要

    普通模式 根据屏幕行上下移动. gj gk g0 g^ g$ 移动到行首第一个非空字符 ^ 反向移动到上一单词的词尾 ge 插入模式 粘贴寄存器中内容 <C-r> 可视模式 移动光标的起始 ...

  2. linux install ftp server

    first  yum install vsftpd 第二部:vi /etc/vsftpd/vsftpd.conf 添上下面一段话 anonymous_enable=YESlocal_enable=YE ...

  3. 马凯军201771010116《面向对象与程序设计Java》第十六周知识学习总结

    一:理论知识部分 1.线程的概念: 程序是一段静态的代码,它是应用程序执行的蓝 本. ‐进程是程序的一次动态执行,它对应了从代码加 载.执行至执行完毕的一个完整过程. 多线程是进程执行过程中产生的多条 ...

  4. centos下搭建openstack的环境

    一.准备环境 linux (centos 7.2(C300的虚机) ) java1.8 官网下载tar包 安装前设置环境变量 JAVA_HOME=/usr/lib/jvm/java-1.8.0-ope ...

  5. Linux中访问Apache报403错误处理方法

    1.先说本地环境,脱离基础环境的解决策略都是耍流氓 (1)Linux:CentOS7.5 (2)Apache: Apache/2.4.6 (CentOS) (3)Apache的安装路径在 /usr/l ...

  6. Visual C++ 6.0中互换两个数字

    就好比如两杯水,需要三个杯子将这两杯水互换.互换数字就要用一个中间变量. # include <stdio.h> int main(void) { int i; int j; int k; ...

  7. 百度编辑器UEditor 点击上传图片选择框会延迟几秒才会显示 反应很慢(转)

    转自:http://www.blogxuan.com/php/show/323.html UEditor 编辑器点击上传文件选择框会延迟几秒才会显示,反应很慢,上传图片选择框显示很慢. 1.uedit ...

  8. java学习之路重新出发

    一.Java发展史: 1995年由詹姆斯高斯林带领团队开发 java问世 2004  jdk1.5版本更名jdk5.0 2010  sun公司被oracle公司收购  二.java三大体系: java ...

  9. Teaching yourself programming -一个编程爱好者的碎碎念

    多数时候,个人活动的展开都源于某个具体的动机.或许你是为了可以写点小工具,解决日常生活中的一些重复劳动:或许,你心怀梦想,梦想着某一天完成一款你心目中完美的游戏:又或许是,你内心憧憬电影里的hack, ...

  10. SSH配置

    什么是SSH: SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH ...