mysql -u root -p //管理员登陆
show databases; //显示所有的数据库
use ‘databasename’; //进入数据库
show tables; //显示数据库中所有的表
des ‘tablename’; //显示表的结构
create 'databasename'; // 创建数据库
create table 'tablename( //创建表
id int auto_increment primary key, //设置自增的主键
ts timestamp default current_timespamp, //设置自动更新的时间
phrase varchar(128) not null,
)'
create user 'username'@'localhost' identified by 'password'; //创建本地用户
create user 'tester'@'114.114.205.186' identified by 'Tester01.';//创建指定用户
grant all privileges on %database_name.* to 'username'@'localhost';//给用户全部权限
grant select,insert on test to 'tester'@'localhost';//给用户部分授权
flush privileges;//授权后要刷新权限
清空表中数据:
truncate table table_name;
delete * from table_name;
注 : truncate操作中的table可以省略,delete操作中的*可以省略
truncate、delete 清空表数据的区别 :
1> truncate 是整体删除 (速度较快),delete是逐条删除 (速度较慢)
2> truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete高的原因
3> truncate 不激活trigger (触发器),但是会重置Identity (标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的 ID数。而 delete 删除以后,identity 依旧是接着被删除的最近的那一条记录ID加1后进行记录。如果只需删除表中的部分记录,只能使用 DELETE语句配合 where条件
select * from 'tablename'; //显示表中所有数据
show global variables like "%datadir%"; //显示数据库文件路径
mysql的数据库文件data在一个隐藏文件中,路径是这样的
C:\ProgramData\MySQL\MySQL Server 5.5\data
就是program Files 旁边,有个隐藏的文件叫ProgramData
ALTER TABLE student RENAME student4; //修改表名
DESCRIBE student1;
ALTER TABLE student1 MODIFY name varchar(30);//修改字段的数据类型
ALTER TABLE student1 CHANGE name stu_name varchar(40);//修改字段名和字段的数据类型
ALTER TABLE student1 ADD teacher_name varchar(20) NOT NULL AFTER id;//增加字段
ALTER TABLE student1 DROP teacher_name;//删除字段
SHOW CREATE TABLE student2;
ALTER TABLE student2 ENGINE = MYISAM;//更该表的存储引擎
SHOW CREATE TABLE teacher;
ALTER TABLE teacher DROP FOREIGN KEY STUID;//删除表的外键约束
删除表:
格式:DROP TABLE 表名;
删除没有被关联的普通表:直接上面的SQL语句就行了
删除被其他表关联的父表:
方法一:先删除子表,在删除父表
方法二:删除父表的外键约束(上面有介绍),再删该表