zoukankan      html  css  js  c++  java
  • 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)

    Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动.

    在linux中支持两种连接模式:TCP/IP模式和socket

    SQL语句的四部分:

    DDL:数据定义语言

    DCL:数据控制语言

    DML:数据操作语言

    DQL:数据查询语言

    这篇博客主要对DDL进行介绍

    一.首先从数据库方面介绍,对的增删查改

    1.新建数据库

      CREATE DATABASE panyang;

      CREATE DATABASE panyang2 charset=utf8;       指定字符集

    2.查询数据库

      SHOW DATABASES;    该命令行在命令行中教常用

    如,在mac终端中连接数据库  mysql -u root -p

      SHOW CREATE DATABASE panyang;  查看创建数据库的时候得语句

     

    3.修改数据库

      ALTER DATABASE panyang charset utf8;  修改数据库编码格式

    4.删除数据库

      DROP DATABASE panyang2;

    二.操作

    在命令行中,使用哪一个数据库命令

      USE 你要用的数据库名称    如:use panyang

    1.新建 

      CREATE TABLE student(
        id int(10)  PRIMARY KEY AUTO_INCREMENT NOT NULL,   自增,主键,不能为空
        name VARCHAR(20) NOT NULL UNIQUE,  不能为空,唯一
        age INT(10) NOT NULL,           不能为空
        address VARCHAR(50) NOT NULL      不能为空

      )CHARSET utf8;

    2.查询

    SHOW TABLES;  查看所有的表;

    SHOW CREATE TABLE student;

      

    desc student;  查询表结构

      

    3.修改(alter.注:update面对的是数据,alert是面对的表)

      a.在表的最后一列新加一个字段interst

        ALTER TABLE student ADD interst VARCHAR(10);

      b.在表的第一列增加一个字段

        ALTER TABLE student ADD sid int FIRST;    

      c.在age字段后增加一个字段

        ALTER TABLE student ADD sex VARCHAR(10) AFTER age;

      d.在age字段后增加一个字段tel并且在最后一列增加email

        ALTER TABLE student ADD tel VARCHAR(13) AFTER age,ADD email VARCHAR(20);

      e.修改列的名称

        ALTER TABLE student CHANGE age age111 int(20);

      f.修改列数据类型

        ALTER TABLE student MODIFY sex int(4);    

      g.删除一个列 

        ALTER TABLE student DROP sid; 

    4.删除

      DROP TABLE student;

    补充:

      1.创建一个与一个已经存在的表的表结构相同的表的方法.

         CREATE TABLE student2 like student;  前面是新的表名,后面是旧表名

      2.创建一个与一个已经存在表的备份表(结构相同,数据相同)

        CREATE TABLE student22 SELECT * FROM student;

    *************DCL***************

    数据控制语言,控制用户权限

    一个用户可以做什么操作?

      1.Mysql用户连接Mysql

      2.控制(库,表,数据)权限

    主要使用以下命令

    GRANT select,update *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

    (对ip为localhost的root用户密码为123456,进行查找和增加的权限限制)

    GRANT ALL PRIVILEGES ON *.* TO 'test'@'10.0.1.%' IDENTIFIED BY '123456' WITH GRANT OPTION;

    (对ip为10.0.1开头的test用户密码为123456,所有权限)

    FLUSH PRIVILEGES

    这里对个语句进行解释:

    1. *.*  库.表

    *代表没有显示

    *.*代表所有库下面的所有表.如test.student表示test库下的student表

    2.'root'@%

    %代表没有限制

    root代表受限制的用户

    'root'@'localhost'表示:ip为localhost的root用户受限制

    'root'@'10.0.1.%'表示:ip为10.0.1开头的root用户受限制

    权限限制的4个角度:

    1、你需要从哪里连接数据库?
    2、你需要对谁操作,做什么操作?
    3、你要用哪个用户进行操作?
    4、密码是什么?

  • 相关阅读:
    常用知识点集合
    LeetCode 66 Plus One
    LeetCode 88 Merge Sorted Array
    LeetCode 27 Remove Element
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 448 Find All Numbers Disappeared in an Array
    LeetCode 219 Contains Duplicate II
    LeetCode 118 Pascal's Triangle
    LeetCode 119 Pascal's Triangle II
    LeetCode 1 Two Sum
  • 原文地址:https://www.cnblogs.com/panpan0301/p/9346552.html
Copyright © 2011-2022 走看看