• (一)SQL 基础知识


    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

        修改字段id为主键自增长:ALTER TABLE tb_1 CHANGE id id INT PRIMARY KEY auto_increment

        取消主键的自增长属性:ALTER TABLE tb1 CHANGE id id int(这一句只取消自增长,不会取消主键)

        删除主键:alter table 表名 drop primary key

        修改字段可以为NULL:   alter table tb_1 change id id int  NULL

        修改字段不可以为NULL:alter table tb_1 change id id int NOT NULL

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

      插入数据: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生效

        

  • 相关阅读:
    制作交互式网站风格的移动背景
    HTML5中的一些拖拽成员
    你不一定了解的CSS技巧
    DOS bat上使用MSSQLSERVER服务
    优化你的C语言程序就是这么简单
    编写宏的有效方法
    vba,excel,身份证,照片
    网址收藏
    PowerShell让系统可以执行.ps1文件,开机,关机,在线时间 , Function自定义函数
    按键精灵txt判断
  • 原文地址:https://www.cnblogs.com/xiaochongc/p/9825410.html
Copyright © 2020-2023  润新知