zoukankan      html  css  js  c++  java
  • MySQL数据库

    --MySQL数据库
    MySQL是一个开放源码的小型关联式数据库管理系统,在WEB应用方面MySQL是最好的
    RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。

    MySQL是C/S(客户端/服务端)体系结构的软件,分别有四种不同的操作语言,分别是:

    1,DDL(Data Definition Language,数据定义语言)
    主要是用来定义和维护数据库的各种操作对象,比如库、表、索引、视图;
    主要的操作关键字有:create、drop、alter等

    2,DML (Data Manipulation Language,数据操作语言)
    主要是对表中的记录进行增删改查的操作! 关键字:select

    3,DQL (Data Query Language,数据查询语言!)
    主要是对表中的数据进行查询的操作!
    关键字:select

    4,DCL:(Data Control Language,数据控制语言)
    主要是对数据库进行统一管理和统一控制,比如并发控制,存取控制,安全控制等;

    --一、数据库操作

    -- 1、创建一个数据库(增)
    --语法形式 :craate database 数据库名
    craate database php2016;

    -- 创建含有特殊字符的数据库
    create database 1234 ; --纯数字,出错
    create database use; --关键字,出错
    create database 传智博客; --中文,出错

    create database `1234`; --成功
    create database `use`; --成功
    create database `传智播客`; -- 失败,字符编码问题
    set names gbk; --告诉服务器当前客户端的编码为gbk

    -- 2、查看数据库(查)
    --语法形式 :show databases (查看有哪些数据库)
    show database 数据库名; -- (查看某一个数据库)
    --查看数据库的创建创建语句
    show create database 数据库名;

    --3、删除数据库(删)
    --语法: drop database 数据库名;
    drop database 数据库名;
    drop database `1234`;
    drop database `use`;
    --注意:删除数据库一定要慎重!因为整个数据库文件(包括里面所有的数据表以及表中所有的数据)
    --都会被删除,过程默认不可逆

    --4、修改数据库(改)
    --修改数据库库选项信息 需慎重!修改数据库名称时容易丢失数据库的部分数据,如果要修改先创建一个新的数据表拷贝备份,再删除之前的数据库
    --语法如下:
    alter database 数据库名 新的库选项;
    alter database php2016 default charset gbk;


    --二、数据表操作
    --所有的数据表都应该属于某一个具体的数据库!所以,有关数据表的任何操作都需要先指定其所属的数据库!
    --有两种方式
    -- a、显示的指定数据库
    create table php2016.test1(a int);

    --b、指定默认的操作数据库
    use php2016;
    create table test2(a int);

    --在test数据库下创建一个数据表
    create table test.test1(a int);


    --1、创建数据表(增)
    --创建表语法
    create table 表名(
    字段1 字段1类型,
    字段2 字段2类型,
    字段3 字段3类型,
    字段n 字段n类型,
    )表选项信息;

    create table test3(
    a int,
    b float,
    c varchar(50)
    );
    create table jiu_test1(
    a int,
    b float,
    c varchar(50)
    );
    create table jiu_test2(
    a int,
    b float,
    c varchar(50)
    );
    create table lvyou_test1(
    a int,
    b float,
    c varchar(50)
    );
    create table lvyou_test2(
    a int,
    b float,
    c varchar(50)
    );

    --2、查看数据表(查)

    --查询当前数据库下有哪些数据表
    show tables;

    --a、模糊查询 关键字:like 通配符:_可以代表任意单个字符,%可以代表任意的字符。
    --只查看以 jiu 开头的表,需要用到模糊查询
    show tables like 'jiu_%'; -- 注意这里的引号不能省略

    --b 、查看表的创建语句
    show create table 表名;

    --c、另外,还可以查看表的结构
    --语法:desc 表名;
    desc test3;

    --3、删除数据表(删)
    --语法: drop table 表名;
    drop table test1;
    drop table test99; --删除一个不存在的表系统会报错
    --如果删除一个不存在的表,系统默认的是报错,所以还有一个比较完整的语法:
    drop table if exists 表名;
    --这种比较完整的语法还适用于 创建|删除数据库 或 创建|删除 数据表
    create database if not exists 库名;
    drop database if exists 库名;
    create table if not exists 表名(字段列表);
    drop table if exists 表名 ;


    --3、修改数据表(改)
    --数据表修改可以分成上级命令+下级命令 上级命令:alter table 表名 下级命令关键字:rename
    --修改表名的语法
    alter table 旧表名 rename to 新表名;
    --修改表名还有一个比较简单的语法:
    rename table 旧表名 to 新表名;
    --rename语法还可以实现数据表的移动:
    rename table jiu_test1 to test.jiu_test1 -- 相当于把当前数据库下的jiu_test1数据表移动到test 数据库下


    --三、修改列定义
    --修改列定义的上级命令还是:alter table 表名 下级命令的关键字:增加:add 、 删除:drop、 重命名:change 、 修改:modify

    --1、增加一列
    --语法: alter table 表名 add 新列名 字段类型;
    alter table php2016_test1 add d tinyint;

    --2、删除一列
    --语法: alter table 表名 drop 字段名;
    alter table php2016_test1 drop d;


    --3、修改字段类型
    --语法: alter table 表名 modify 字段名 新的数据类型;
    alter table php2016_test2 modify b int;

    --修改字段排序 (把某个字段放在最前面)
    --语法: alter table 表名 modify 字段名 数据类型 first;
    alter table php2016_test2 modify b int first;
    --把字段名1放在字段名2的后面
    --语法: alter table 表名 modify 字段名1 数据类型 after 字段2;
    alter table php2016_test2 modify b int after c;


    --重命名字段
    --alter table 表名 change 原字段名 新字段名 新字段类型;
    alter table php2016_test2 change d a tinyint;

    --修改表选项
    --语法:alter table 表名 表选项信息;


    --四、数据操作
    --1、插入数据(增)
    --插入数据语法形式
    insert into 表名(字段列表) values(值列表);
    --创建student表
    create table student(
    stu_id int,
    stu_name varchar(20),
    stu_age tinyint unsingned,
    stu_money int
    );
    --插入数据
    insert into student(stu_id,stu_name) values(1,'刘备');
    insert into student(stu_id,stu_name) values(2,'曹操');
    insert into student(stu_id,stu_name) values(3,'孙权',25,2000);

    --也可以一次插入很多条数据,中间以逗号隔开!
    insert into student values
    (4,'关羽',35,5000),
    (5,'赵子龙',32,10000),
    (6,'张飞',34,4000);

    --2、查询数据(查)
    --基本语法查询语句 :select *|字段列表 form 表名[查询条件];
    select * from student; --或者 select * from student where
    --只查询部分字段语法: select stu_name,stu_id form student;

    --3、删除数据(删)
    --删除数据语法形式 :delete from 表名[删除条件];
    delete from student where stu_id>4;

    --4、修改数据
    --语法形式:update 表名 set 字段1=新值1,字段2=新值2.....[修改条件]
    update student set stu_age = 36 where stu_name = '刘备';

  • 相关阅读:
    qt调用simsimi api实现小黄鸡
    [机器学习系列] k-近邻算法(K–nearest neighbors)
    Ubuntu上安装flashplayer
    关于ubuntu下qt编译显示Cannot connect creator comm socket /tmp/qt_temp.xxx/stub-socket的解决办法
    Linux下添加源的几种方法
    Ubuntu字符界面输入密码始终提示错误 login incorrect 解决办法
    boost::algorithm(字符串算法库)
    boost::assign(标准容器填充库)
    boost::format(字符串格式化库)
    C/C++内存对齐 ZZ
  • 原文地址:https://www.cnblogs.com/ccw869476711/p/6100091.html
Copyright © 2011-2022 走看看