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

数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)的更多相关文章

  1. MySQL数据库笔记六:数据定义语言及数据库的备份和修复

    1. MySQL中的函数 <1>加密函数 password(str) 该函数可以对字符串str进行加密,一般情况下,此函数给用户密码加密. select PASSWORD('tlxy666 ...

  2. sql 两大类 DDL数据定义语言 和DCL数据控制语言

    SQL分为五大类: DDL:数据定义语言   DCL:数据控制语言     DML:数据的操纵语言  DTL:数据事务语言  DQL:数据查询语言. DDL (date definition lang ...

  3. 数据库中的DDL和DML语言

    "D:\mysql-5.6.22-winx64\bin"添加到系统环境变量path中了,然后在任意目录可访问mysql等命令,这样如登录等操作就不需要进入MySQL安装目录才好执行 ...

  4. oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言

    DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...

  5. Hive 官方手册翻译 -- Hive DDL(数据定义语言)

    Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...

  6. mysql DDL数据定义语言

    DDL数据定义语言 本节涉及MySQL关键字:create.alter(rename,add,chang,modify,drop).drop.delete.truncate等. -- 创建表:-- 数 ...

  7. DDL数据定义语言

    DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...

  8. 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)

    DDL 的基础语法 文章目录 DDL 的基础语法 对数据库进行定义 对数据表进行定义 创建表结构(数据表) 设计工具 修改表结构 小结 参考资料 简单复习一波 SQL必知必会 DDL 的英文全称是 D ...

  9. Oracle language types(语言种类) 表的相关操作 DDL数据定义语言

    数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...

随机推荐

  1. JavaScript中,关于class的调用

    PS:class的调用,其实是可以叠加的,当然了这要求样式不同的情况下,如果样式相同,则后一个样式会覆盖前一个样式. 1.举例如下: <div id="test" class ...

  2. Java MVC 增删改查 实例

    需求:实现增加新部门的功能,对应数据库表示Oracle的dept表 一.Java MVC 增 实现: 1.视图层(V):注册部门 deptAdd.jsp 在注册新部门页面只需输入“部门名称”和“城市” ...

  3. HDU 4003 Find Metal Mineral (树形DP,经典)

    题意:给定一棵树图,n个节点,有边权,要派k<11个机器人从节点s出发,遍历所有的点,每当1只机器人经过1条边时就会花费该边的边权,边是可重复走的.问遍历完所有点的最小花费? 思路: 非常经典, ...

  4. NBUT 1117 Kotiya's Incantation(字符输入处理)

    题意: 比较两个串,有三种情况:完全相同,可见字符相同,不同.每个字符串以'-'结尾.难点在输入. 思路: 字符逐个读入,直到'-'为止,读出两串就可以直接进行判断.如果不足两串则结束.输入时需要注意 ...

  5. 覆盖alert对话框-自制Jquery.alert插件

    Javascript 代码: (function ($) { 'use strict'; window.alert = $.alert = function (msg) { var defaultOp ...

  6. UVA 1347 Tour 双调TSP

    TSP是NP难,但是把问题简化,到最右点之前的巡游路线只能严格向右,到最右边的点以后,返回的时候严格向左,这个问题就可以在多项式时间内求出来了. 定义状态d[i][j]表示一个人在i号点,令一个人在j ...

  7. 上下文 xx

    上下文,就是指在程序中的某个位置,可以访问到的所有资源的总和. 具体说来,在程序中资源可能是一个变量.一个常量.一个类的引用等等.

  8. this+call、apply、bind的区别与使用

    http://www.ruanyifeng.com/blog/2018/06/javascript-this.html https://segmentfault.com/a/1190000018017 ...

  9. dhtmlTree简单实例以及基本参数设置

    demo实例参考:  <link rel="STYLESHEET" type="text/css" href="css/dhtmlXTree.c ...

  10. ios runloop学习

    今天突然才之间才意识到NSTimer这样的运行方式,是在多线程中实现的循环还是在主线程中去实现的呢.当然不可能是在主线程中的while那么简单,那样什么都干不了,简单看了下NSTimer是以同步方式运 ...