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、密码是什么?

  • 相关阅读:
    Mac appium.dmg. Xcode Command Line Tools
    利用appium-1.5.3.dmg安装Appium. doctors时,提示 Could not detect Mac OS X Version from sw_vers output: '10.12'
    Bootstrap
    configure: error: xml2-config not found. Please check your libxml2 installation
    php出现Can't use function return value in write context
    Css中路径data:image/png;base64的用法详解
    织梦默认模板导航菜单标签判断首页并高亮显示首页的代码
    [php]在PHP中读取和写入WORD文档的代码
    Windows平台的PHP之开启COM配置
    l【linux】linux rpm包命名规范
  • 原文地址:https://www.cnblogs.com/panpan0301/p/9346552.html
Copyright © 2011-2022 走看看