测试环境: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

mysql数据库增、删、改、查等基本命令的更多相关文章

  1. day 37-8 关于mysql 的增 删 改 查 及联合列表

    1      VARCHAR : 字符串的意思 (括号内的数字代表尾数) 输入的字符串在这个范围内都行 CHAR  :字符串的意思(区别就有几位数字 必须写几位) INT   整数(位数) 输入的数字 ...

  2. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  3. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  4. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  5. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  6. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  7. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  8. 简单的php数据库操作类代码(增,删,改,查)

    这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...

  9. Go语言之进阶篇mysql增 删 改 查

    一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...

  10. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

随机推荐

  1. java Vamei快速教程09 类数据和类方法

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们一直是为了产生对象而定义类(class)的.对象是具有功能的实体,而类是对象的 ...

  2. 知名nodeJS框架Express作者宣布弃nodeJS投Go

    知名 nodeJS 框架 Express 的作者 TJ Holowaychuk 在 Twitter 发推并链接了自己的一篇文章,宣布弃 nodeJS 投 Go. 他给出的理由是:Go 语言和 Rust ...

  3. fmt - 简易的文本格式优化工具 simple optimal text formatter

    总览 (SYNOPSIS) ../src/fmt [-DIGITS] [OPTION]... [FILE]... 描述 (DESCRIPTION) 重新 格式化 文件 FILE(s) 中的 每一个 段 ...

  4. C# 创建子目录

    运用DirectoryInfo类创建子目录是非常容易的,你只要调用其中CreateSubdirectory()方法即可,演示代码如下. DirectoryInfo dir = new Director ...

  5. VS Code 用户自定义代码片段(React)

    VS Code 用户自定义代码片段(React) .jsxReact组件模板:javascriptreact.json { "Import React": { "pref ...

  6. 【转】C++ 值传递、指针传递、引用传递详解

    而关于值传递,指针传递,引用传递这几个方面还会存在误区, 所有我觉的有必要在这里也说明一下~ 下文会通过例子详细说明哦 值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值.从被调用函数的角 ...

  7. 1305: [CQOI2009]dance跳舞

    Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 4169  Solved: 1804[Submit][Status][Discuss] Descripti ...

  8. Python基础2-Python中文乱码(转)

    转自:https://blog.csdn.net/apache0554/article/details/53889253 前言:中文编码问题一直是程序员头疼的问题,而Python2中的字符编码足矣令新 ...

  9. JavaScript 日期权威指南

    简介 JavaScript通过强大的对象为我们提供日期处理功能:日期. 本文确实_不是_谈论 Moment.js ,我认为它是处理日期的最佳库,你应该在处理日期时几乎总是使用它. Date对象 Dat ...

  10. js数组删除(splice和delete)

    最近一直在写js的数组,然后就发现了很奇怪的问题,后来才发现了规律. 删除数据的一行,一般有两种方法,一个是splice,一个是delete: splice:删除了数组后,数组的长度会自动变化.用法: ...