zoukankan      html  css  js  c++  java
  • Mysql之DDL操作

    Mysql之DDL操作

    一、数据库简介

    1、数据库(DB):按照一定数据结构存储数据的仓库

    龟壳--》竹子--》纸--》电子设备(U盘、SD卡、磁盘、移动硬盘、网盘)--》数据库

    2、数据库管理系统(DBMS):操纵和管理数据库的一套软件。

    Mysql/oracle/sql server

    3、分类

    关系型数据库管理系统(RDBMS)

    常见的系统有:Oracle/Mysql/SQL server/DB2/mariaDB

    非关系型数据库管理系统(NoSQL-->not only SQL)

    1)redis  主要做缓存用,可以快速的建立缓存

    2)hbase  列族数据库

    3)mongodb  主要做文档型的数据库

    4)neo4j主要做图数据库,在社交网络这一块运用比较广

    4、Mysql数据库管理系统

    Mysql是一个关系型数据库管理系统。

    Mysql采用关系模型对数据进行管理,采用分表的形式管理,对多张表存在情况下,可以采用分库的形式进行管理

    Mysql数据库管理系统中可以管理多个数据库,在一个数据库中可以存放多张表

    Mysql数据库管理系统是一个多用户管理系统(root设置密码,添加一个用户)

    二、SQL介绍

    1、Structure Query Language结构化查询语言。关系型数据库中进行操作的标准语言。

    2、特点

    对大小写不敏感  SELECT  select  Select

    结尾要使用分号一行代码结束之后;

    3、分类

    DDL:数据定义语言(数据库对象的操作(结构))

    数据库对象:数据库、表、视图、索引等

    create / alter / drop

    DML:数据操纵语言(对数据库对象中的数据的操作 增删改查)

    insert  /  update  /  delete  /  select

    DCL:数据控制语言(授权 取消授权)

    grant  /  revoke

    TCL:事务控制语言(对事务的控制)transaction

    commit / rollback(回滚)

    三、DDL数据定义语言

    1、数据库  database

    创建数据库:create database 数据库名;

    销毁数据库:drop database 数据库名;   

    create database huace1;

    drop database huace1;

    2、表    table

    1)创建表

    语法:

    create table 表名(

    字段1 类型 [约束],

    字段2 类型 [约束],

    ........

    );  

    #表

    create table userinfo(

    username varchar(20),                #字段  数据类型

    pwdvarchar(50),

    telvarchar(15),

    email varchar(20)

    );

    2)删除表

    语法:drop table 表名;

    drop table student;

    3)修改表

    表中字段进行添加 add、删除 drop、修改change/modify的操作

    语法:alter table 表名 add | change/modify | drop 字段名 类型 约束;

    alter table userinfo add status int;

    alter table userinfo drop email;

    alter table userinfo change username login_name varchar(20);

    alter table userinfo modify pwd varchar(16);  #modify不可以用来修改字段名

    alter table userinfo change pwd pwd int;

    alter table userinfo change pwd my_pwd varchar(16);  #同时修改字段名和数据类型

    alter table userinfo modify `status`  int first;  fitst关键字把status字段方到最先面。    

    alter table userinfo modify `status`  int after login_name;     after关键字  把status字段放到login_name字段后面。

    3、数据类型

    主要是用来限制输入的内容

    数值类型、字符串类型、日期类型、其他类型

    1)数值类型:int 整数   float  浮点数  double  浮点数   decimal  浮点数

    float(10,2)double(16,4) decimal(5,2) 一定要声明长度和精度

    2)字符串类型:char(n) 定长长度    varchar(n)  不定长长度

    name char(10)name varchar(10)

    张三张三

    3)日期类型:date(年月日)、time(时分秒)、datetime(年月日)、timestamp(年月日)、year(年)等

    学生表(id int,name varchar(10),money float,in_date date)

    create table student(

    id int,

    name varchar(10),

    money float,

    in_date date

    )

    练习题:

    1) 创建用户表(user)

    字段类型长度

    uid  int

    uname  varchar20

    password  varchar20

    birthday      date


    create table user(
    uid int
    uname varchar(20),
    password varchar(20),
    birthday date
    );


    2) 向用户表中追加字段email,varchar类型,长度20
    alter table user add email varchar(20);

    3) 向用户表最前面添加字段status,int类型
    alter table user add status int first;

    4) 向用户表password字段后面添加sage,int类型
    alter table user add sage int after passwoed;

    5) 修改sage的名称为age
    alter table user change sage age int;

    6) 修改password字段的长度为50
    alter table user modify password varchar(50);

    7) 修改status到email之后的位置
    alter table user modify status int after email;

    8) 删除字段status
    alter table user drop status;

    9) 修改表的名称为userinfo
    rename table user to userinfo;

    10) 清空数据库表
    truncate table userinfo

    11) 销毁数据库表user
    drop table user;

  • 相关阅读:
    MapReduce运行原理和过程
    为什么均方差(MSE)不适合分类问题?交叉熵(cross-entropy)不适合回归问题?
    207. 课程表
    131. 分割回文串
    152. 乘积最大子数组
    pandas内存优化函数
    395. 至少有K个重复字符的最长子串
    HTML入门
    递归与链表
    Spring--001
  • 原文地址:https://www.cnblogs.com/gskk/p/13204787.html
Copyright © 2011-2022 走看看