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官方文档
http://blog.csdn.net/h1017597898/article/details/9815987
mysql数据库增、删、改、查等基本命令的更多相关文章
- day 37-8 关于mysql 的增 删 改 查 及联合列表
1 VARCHAR : 字符串的意思 (括号内的数字代表尾数) 输入的字符串在这个范围内都行 CHAR :字符串的意思(区别就有几位数字 必须写几位) INT 整数(位数) 输入的数字 ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- 简单的php数据库操作类代码(增,删,改,查)
这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...
- Go语言之进阶篇mysql增 删 改 查
一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
随机推荐
- [转]C#中StreamReader读取中文出现乱码
摘自:C#中StreamReader读取中文出现乱码 原因是自Windows 2000之后的操作系统在文件处理时默认编码采用Unicode所以.NET文件的默认编码也是Unicode.除非另外指定,S ...
- 介绍一款渗透神器——Burp Suite
Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代 ...
- html代码能让网页的横向滚动条默认居中
在body 中加入 onload="window.scrollTo((document.body.scrollWidth-document.body.offsetWidth)/2,0)&qu ...
- yii:高级应用程序搭建数据库的详细流程
上一章已经把高级应用程序的环境搭配成功,那么下一步就是搭建数据库了. 首先,我们先去创建一个数据库,比如:demo 创建完之后,我们重要的就是将文件中的数据进行一个更新,在www/advancend/ ...
- java +selenuim使用js显示控件
操作selenium控件时,往往需要有些控件提前显示,特别是后台的一些控件,或者需要使用鼠标显示下拉的操作,有时鼠标悬停,在点击不怎么好使,就可以依靠js方式,提前让控件显示. 1.使用style的方 ...
- 2018.5.24 Oracle下的sqlplus编程 块结构
1.语句结构模板 declare --声明 begin dbms_output.put_line('Legend Hello world'); end; 2.变量使用 & 是输入符号 decl ...
- 2018.5.20 oracle强化练习
--现在有一个商店的数据库,记录客户以及购物的情况, 商品表goods (商品号 goodsid varchar2(8) 商品名 goodsname varchar2(20) 单价 unitprice ...
- CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第八节
原文链接 第八节:利用CUDA函数库 Rob Farber 是西北太平洋国家实验室(Pacific Northwest National Laboratory)的高级科研人员.他在多个国家级的实验室进 ...
- 绑定Ligerui中的ligerComboBox二级联动
$.ajax({ url: "HRHandler.ashx", data: "bz=getDepartData", cache: false, type: &q ...
- Load事件中控件Focus()无效解决办法
原因:Load窗体时,窗体未显示 解决:1.Focus()之前添加this.Show(); 2.在Shown事件中添加Focus()