zoukankan      html  css  js  c++  java
  • mysql数据库增、删、改、查等基本命令

    测试环境:windows7 64位 mysql.exe、Navicat Lite for MySQL、mysql 5.0.18

    mysql数据库的基本结构:
      数据库(database)包含多个表(table);表包含多个属性列(column);属性列包含多个数据(data);属性列具有四个信息(field,type,null,key,default)。

      我们要做得工作就是对database、table、column、data进行增、删、改、查四种操作,一共4*4=16种命令。

    1.1 增 database    --创建一个数据库
      create database databaseName;   --创建名为databaseName的数据库

    create database mydb;
    

    1.2 删 database    --删除一个数据库
      drop database databaseName;   --删除名为databaseName的数据库

      drop database if exists databaseName;  --如果存在数据库databaseName,则删除

    1.3 改 database

      未知

    1.4 查 database
      show databases;    --显示所有database的databaseName

      select database();  --显示当前database的databaseName

    2.1 增 table      --创建一个表,创建表时至少有一个column,否则报错
      create table tableName
      (
      columnName1 <属性信息>
      [,primary key(columnName)]    --也可在此定义主键(primary key),[]中内容可有可无
      [,foreign key( columnName1 ) reference tableName2(columnName2)] [on delete cascade]/*定义外键columnName1是当前表已经定义的column,tableName2是另一个已经定义的表名,columnName2是另一个  表   的column名字*/
      )[comment[=]'table的描述内容'];
      --<属性信息>:typeName[null|not null][default defaultValue] [primary key][auto_increment][comment 'column的描述内容'][identity(起始值,递增量)]
      --null|not null:空或非空
      --default defaultValue:默认值
      --auto_increment:从1或当前最大值开始自动增加1,与identity(1,1)一样

    create table mytable
    
    (
    
      id   int(8)   not null   auto_increment   comment '表的主键'   primary key,
    
      name char(10)   not null   default '',
    
      foreign key(id) reference mytable1(id_1) on delete cascade
    
    )comment='我的表'; 

    2.2 删 table --删除表
      drop table tableName1 [,tableName2] --可删除一个或多个表,默认为当前数据库中的表
      drop table databaseName.tableName --删除databaseName中名为tableName的表

    2.3 改 table    --改变表的名字
      rename table tableName to tableName_new [,tableName1 to tableName_new1]; --将名为tableName的表重命名为tableName_new
      alter table tableName rename to tableName_new; --同上

    2.4 查 table  --查看表的名字
      show tables from databaseName;    --显示databaseName的所有tableName
      show tables;    --显示当前database的所有tableName(use databaseName;--进入某个数据库)

    3.1 增 column
      alter table tableName add [column] columnName <属性信息>;   --插入columnName,<属性信息>参考2.1

    alter table mytable add age int(2) default 0;

      alter table tableName add [column] columnName <属性信息> after columnName1;  --在columnName1后插入columnName

    3.2 删 column
      alter table tableName drop [column] columnName;  --删除columnName

    3.3 改 column
      alter table tableName modify columnName <属性信息>;  --修改columnName的<属性信息>

    alter table mytable modify age int(4); 

      alter table tableName change columnName columnName_new <属性信息>;   --修改columnName的名字为columnName_new及其<属性信息>

       添加主键约束:

    alter table Studetns add CONSTRAINT c1 primary key(Sno);

    3.4 查 column --查看表中所有column的columnName及其信息
      describe tableName; --查看表名为tableName中的所有column的columnName及其<属性信息>
      show columns from tableName;--同上

    4.1 增 data

      insert into tableName(columnName1,columnName2[,columnName3])
      
    values(value1,value2[,value3])[,(value_1,value_2[,value_3])]; --插入一行或多行数据

    insert into mytable (name,age) values('Bob',20),('Linda',21);

      load data local infile 'path/fileName' into table tableName  --将文件中的数据装载到表中,文件中数据用‘\t’分割,数据行用‘\n’分割

    load data local infile 'F:/test.txt' into table mytable;

     

    4.2 删 data

      truncate table tableName;    --清空tableName中的数据

      delete from tableName;      --同上

      delete from tableName where <条件语句>;  --删除满足<条件语句>的数据行

    delete from mytable where age=20; 

    4.3 改 data

      update tableName set <columnName=data> where <条件语句>;  --改变满足<条件语句>的行中columnName的数据为data

    update mytable set age=22 where name='Bob'; 

    4.4 查 data

      select columnName1[,columnName2] from tableName where <条件语句>;  --查找满足<条件语句>的属性名为columnName1[,columnName2]的数据

    select name,age from mytable where id=2; 

      select * from tableName where <条件语句>;  --查找满足<条件语句>的数据行

    扩展1.创建索引

      create [unique|cluster] index indexName on tableName(columnName1,columnName2,...)

    CREATE INDEX keyIndex ON SC(sno, cno);

    扩展2.创建视图

      create view viewName(columnName1,columnName2,...) as <查询语句>

    create view avgGrade(Sno, avgG) as
              select Sno, avg(Grade)
              from SC
              group by Sno
          with check option;

    扩展3.1增加用户

       insert into mysql.user(Host,User,Password) values("localhost","userName",password("password"));

     insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
    flush privileges;

    扩展3.2删除用户

      Delete FROM user Where User='userName' and Host='localhost';

    Delete FROM user Where User='test' and Host='localhost';
    flush privileges;

    扩展3.3用户授权

    /*将sql server的一合法帐户(user60)加入到你的数据库当中来,并给其授权,使之:
      具有创建表的权限
      具有对Students表查询的权限
      具有对Studetns表的年龄字段修改的权限*/
    SP_grantdbaccess 'user60';
    
    grant create table to user60;
    
    grant select on Students to user60;
    
    grant update(Sage) on students to user60;

    参考:http://www.w3school.com.cn/sql/index.asp

       MySQL 数据库常用命令小结

         mysql官方文档

         http://blog.csdn.net/h1017597898/article/details/9815987

  • 相关阅读:
    Python函数参数学习笔记
    Python基础笔记
    winform碎片
    常用sql语句
    《零基础入门学习Python》学习过程笔记【021匿名函数】
    统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话
    《零基础入门学习Python》学习过程笔记【020函数的局部变量和全全局变量内部函数和闭包】
    编写一个函数,分别统计出传入字符串参数(可能不止一个参数)的英文字母,空格,数字和其他字符的个数
    写一个函数,判断一个字符串是否为回文联
    《零基础入门学习Python》学习过程笔记【019函数返回值问题】
  • 原文地址:https://www.cnblogs.com/woxinfeixiang2015/p/5473161.html
Copyright © 2011-2022 走看看