mySql基本操作
每条语句输入完毕后要在末尾填加分号';',或者填加'\g'也可以; 查询时间:select now(); 查询当前用户:select user(); 查询数据库版本:select version(); 查询当前使用的数据库:select database();
一:系统操作
-
net start mysql //启动mysql服务
-
net stop mysql //停止mysql服务
-
mysql -h主机地址 -u用户名 -p用户密码 //进入mysql数据库
-
quit //退出mysql操作
-
mysqladmin -u用户名 -p旧密码 password 新密码 //更改密码
-
grant select on 数据库.* to 用户名@登录主机 identified by "password" //增加新用户
exemple:
- 增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作
(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据
库,只能通过MYSQL主机上的web页来访问了。 grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc"; - 如果你不想test2有密码,可以再打一个命令将密码消掉。grant select,insert,update,delete on mydb.* to test2@localhost identified by " ";
show databases;显示所有数据
use database_name; 使用database_name数据库
create database data _name; 创建data_name数据库
drop database data_name //删除一个名为data_name的数据库
备份数据库:(将数据库test备份)
mysqldump -u root -p test>c:\test.txt
备份表格:(备份test数据库下的mytable表格)
mysqldump -u root -p test mytable>c:\test.txt
将备份数据导入到数据库:(导回test数据库)
mysql -u root -p test
三、表操作
show tables //列出所有表
create talbe tab_name(id int(10) not null auto_increment primary key,name varchar(40),pwd varchar(40)) charset=gb2312;
创建一个名为tab_name的新表
drop table tab_name // 删除名为tab_name的数据表
describe tab_name //显示名为tab_name的表的数据结构
show columns from tab_name //显示表格列的属性
delete from tab_name //将表tab_name中的记录清空
select * from tab_name //显示表tab_name中的记录
mysqldump -uUSER -pPASSWORD --no-data DATABASE TABLE > table.sql //复制表结构
create temporary table temp(name varchar(10));//创建临时表
create table if not exists students(……); //创建表时先判断表是否存在create table table2 select * from table1 where 1<>1; //从已有表中复制表的结构
create table table2 select * from table1; //复制表
四、修改表结构
ALTER TABLE tab_name ADD PRIMARY KEY (col_name) //更改表的主键
ALTER TABLE tab_name DROP PRIMARY KEY (col_name) //删除主键
alter table tab_name add col_name varchar(20); //在tab_name表中增加一个名为col_name的字段且类型为varchar(20)
alter table tab_name modify col_name varchar(40) not null //修改字段属性,
注如果加上not null则要求原字段下没有数据SQL Server200下的写法是:Alter Table table_name Alter Column col_name varchar(30) not null;
alter table table1 modify id int unsigned;//修改列id的类型为int unsigned alter table table1 change id sid int unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned
alter table tab_name rename to new_tab_name //修改表名
alter table tab_name change old_col new_col varchar(40); //修改某一项的字段名
create table new_tab_name like old_tab_name //用一个已存在的表来建新表,但不包含旧表的数据
alter table table1 add index ind_id (id); create index ind_id on table1 (id); create unique index ind_id on table1 (id);//建立唯一性索引
select * from students order by id limit 9,10;select * from students order by id limit 9,10; //limit选出10到20条信息。
五、数据的备份与恢复
导入外部数据文本:
执行外部的sql脚本当前数据库上执行:mysql < input.sql指定数据库上执行:mysql [表名] < input.sql
数据传入命令 load data local infile "[文件名]" into table [表名];备份数据库:
(dos下)mysqldump --opt school>school.bbbmysqldump -u [user] -p [password] databasename > filename (备份)mysql -u [user] -p [password] databasename < filename (恢复)