SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言。

  • 优点:功能强、效率高、简单易学易维护。
  • 缺点:非过程化语言,大多数语言都是独立执行,与上下文无关,而大多数 应用都是一个完整的过程,显然用SQL完全实现这些功能是很困难的。

大多数数据库公司从以下两方面来解决此问题:

    1)扩充SQL,在SQL中引入过程性结构

    2)把SQL嵌入到高级语言中

表(TABLE)

视图(VIEW)

索引(INDEX)

同义词(SYN)

聚簇(CLUSTER)

数据库操作:

  创建数据库:create database 库名  例如:create database db1  //创建一个名为db1的数据库

  删除数据库:drop database 库名  例如:create database db1  //删除名为db1的数据库

  查看数据库:show databases  //显示所有库名

  使用数据库:use 库名

  重命名数据库:停止服务 -> 修改数据库所在文件夹的名称 -> 启动服务

数据表操作:

  创建数据表:create table 表名  例如:create table tb1  //创建一个名为tb1的表,例如create table tb1 (id int)

  删除数据表:drop table 表名  例如:drop table tb1  //删除一个名为tb1的表  drop table if exists tb5(若存在则删除)

  重命名数据表:rename table 表1 to 表2

  查看数据表:show tables  //显示当前库中的所有表名

  查看表结构:describe 表名

  修改表结构:

    添加字段:alter table 表名 add 列名 属性   例如:alter table tb1 add id int  //给表tb1中增加一个字段id,属性为int  alter table tb1 add addr varchar(10) after id(在id列后增加addr列)

    删除字段:alter table 表名 drop 列名  例如:alter table tb1 drop id  //删除表tb1中的id字段

    修改字段名称:alter table 表名 change 列名 新列名 属性  例如:alter table tb1 change id  id_new int  //将表tb1的id字段名称改为id_new

    修改字段属性:alter table 表名 change 列名 列名 新属性  例如:alter table  tb1 change id int decimal  //将表tb1的id字段属性int改为decimal

    修改字段属性:alter table 表名 modify 列名 新属性  例如:alter table tb1 modify id decimal

表中数据操作(增删改查):

  插入数据:insert into 表名(列1,列2) values (值01,值02),(值11,值12)

  查询数据:select 列名 from 表名 where 查询条件

  修改数据:update 表名 set  列名=值 where 条件

  删除记录:delete from 表名 where 条件

数据复制:

  创建新表 - 复制旧表结构及数据到新表    create table 新表 select * from 旧表

  创建新表 - 仅复制旧表结构  create table 新表 select * from 旧表 where 1=2

  创建新表 - 新旧表结构不同(新表中仅包含旧表中个别字段)  create table 新表 select 列1,列2 from 旧表

  复制旧表数据到新表(表结构相同)insert  into 新表 select * from 旧表

  复制旧表数据到新表(表结构不同)insert into 新表(列1,列2) select 列1,列2 from 旧表

 
 

 grant赋予权限:

  grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘密码’;

  • 权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
  • 当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
  • 当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
  • 用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
  • ‘连接口令’不能为空,否则创建失败。
  • 如果带了 with grant option,那么用户testuser1可以将select ,update权限传递给其他用户( 如testuser2)。如果没带,则不能将权限传递给第三方。

  例如:给所有host下的zy用户,赋予所有数据库和表的一切权限

    mysql> grant all privileges on *.* to zy@'%' identified by '123456' with grant option;  // %表示从任何地址连接

    mysql> flush privileges;  //刷新系统权限表,使以上grant生效

    

(一)SQL -- 基础知识的更多相关文章

  1. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  2. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  3. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  4. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  5. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  6. [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...

  7. [SQL] SQL 基础知识梳理(七)- 集合运算

    SQL 基础知识梳理(七)- 集合运算 目录 表的加减法 联结(以列为单位) 一.表的加减法 1.集合:记录的集合(表.视图和查询的执行结果). 2.UNION(并集):表的加法 -- DDL:创建表 ...

  8. 常见SQL语句和SQL基础知识

    引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name   k ...

  9. SQL 基础知识终极指南

    什么是数据库? 数据库是以电子方式从系统中存储和检索的大量数据集合. 存储在数据库中的结构化数据被处理.操纵.控制和更新以执行各种操作. 行业中使用的一些流行数据库是 Oracle.MySQL.Pos ...

  10. sql基础知识集锦

    Sql常用语法 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT ...

随机推荐

  1. Virtual DOM和snabbdom.js

    Virtual DOM和snabbdom.js:https://www.jianshu.com/p/1f1ef915e83e

  2. xml文件简单读取,循环遍历

    xml文件的简单读取出来生成dom4j.Document对象树,循环遍历获取节点 例子: import java.util.Iterator; import org.dom4j.Document; i ...

  3. 手把手教你vue配置请求本地json数据

    本篇文章主要介绍了vue配置请求本地json数据的方法,分享给大家,具体如下:在build文件夹下找到webpack.dev.conf.js文件,在const portfinder = require ...

  4. Two Merged Sequences CodeForces - 1144G (暴力)

    大意: 给定序列, 求划分为一个严格递增子序列和一个严格递减子序列, 可以为空. 跟 125D 类似的一个题, 直接暴力dfs, 用当前序列长度来剪枝, 状态不会太多, 但是会被一些数据卡掉, 特判一 ...

  5. Centos7 配置LAMP+fastcgi(Centos7.2+php7.0+mariadb+httpd)

    环境:阿里云centos7.3 一.安装并配置数据库 1.安装数据库 #yum install mariadb-server  mariadb -y 2.启动服务并设置开机自启 # systemctl ...

  6. 接口开发中 遇到的坑——Java byte与C# byte 数据转换问题

    前提: 公司与其他公司进行接口对接 需要使用Byte[]数据流传输数据 原本想法如下:直接IO生成就ok了 using System; using System.IO; using System.Te ...

  7. java数据结构复习01

    1.数组 package javaDataStruct.array01; public class MyArray { private int[] arr; // 表示有效数据的长度 private ...

  8. c字符串函数

    1.  bcmp(3) 类ma似于strncmp(3) 但是比较结果不一定是两个字符的ascii码之差. 返回值:相等0,不相等非零(不一定是-1) 2.bcopy(3)类ma似于strncpy(3) ...

  9. Python核心技术与实战——十八|Python并发编程之Asyncio

    我们在上一章学习了Python并发编程的一种实现方法——多线程.今天,我们趁热打铁,看看Python并发编程的另一种实现方式——Asyncio.和前面协程的那章不太一样,这节课我们更加注重原理的理解. ...

  10. 使用Spring MVC统一异常处理实战(转载)

    原文地址:http://blog.csdn.net/ufo2910628/article/details/40399539 种方式: (1)使用Spring MVC提供的简单异常处理器SimpleMa ...