mysql基础操作
启动和关闭mysql
net start mysql #启动
net stop mysql #关闭
创建数据库指定字符集,更改数据库字符集,查看数据库字符集,查看表的字符集,查看所有列的字符集
#创建数据库指定字符集
CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci;
#更改数据库字符集
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
#查看数据库字符集(information_schma库下的schemata表)
方法一:show variables like '%character%';
方法二:show variables like 'collation%';
--show database status from 库名 like 表名;
#查看表的字符集
show table status from class_7 like 'test_info';
#查看所有列的字符集
mysql> show full columns from test_info;
删除数据库(最好不知道)
DROP DATABASE [ IF EXISTS ] <数据库名>
命令行登录MySQL
1.本地登录
mysql -u root -p #root是用户名,输入这条命令按回车键后系统会提示你输入密码
2.指定端口号登录
mysql -u root -p -P 3306 #后面这个P要大写
3.指定ip地址和端口号登录
mysql -h 127.0.0.1 -u root -p -P 3308 #多一个h,后面跟ip地址
查看所有数据库与所有表
show databases #查看所有数据库
show tables #查看所有表
进入数据库
use databaseName #use后加指定数据库名
查看当前进入的数据库
#1.使用函数获取当前数据库名
select database()
#2.使用show tables语句,在查询出的结果第一行为Table
mysql> show tables;
+-------------------+
| Tables_in_test |
+-------------------+
| push_test |
| ship_order_detail |
+-------------------+
2 rows in set (0.00 sec)
创建表
#创建表
#关键字 create table
-- 例子
create table tableName(
列名,列类型,
列名1,列类型1,
列名2,列类型2
)
#最后一行不加逗号
在表内添加约束
#创建表时添加约束
#constraint 索引名可以省略,mysql会自动帮我们生成索引名
create table tableName(
列名,列类型,
#主键,自动增长
列名1,列类型1,primary key,auto_increment
#唯一
列名2,列类型2,unique key,
#非空
列名3,列类型3,NOT NULL,
#默认约束
列名3,列类型3,default<默认值>,
#外键
constraint 索引名
foreign key(外键列) references 主键表(主键列) ,
)
建表后添加和删除约束
1.主键约束:add
添加:alter table table_name add primary key (字段)
删除:alter table table_name drop primary key
2.非空约束:modify #需要注意的是非空约束的添加和删除时使用的都是modify
添加:alter table table_name modify 列名 数据类型 not null
删除:alter table table_name modify 列名 数据类型 null
3.唯一约束:
添加:alter table table_name add unique 约束名(字段)
删除:alter table table_name drop INDEX 约束名
4.自动增长:modify #需要注意的是自动增长的添加和删除时使用的都是modify
添加:alter table table_name modify 列名 int auto_increment
删除:alter table table_name modify 列名 int
5.外键约束:
添加:alter table table_name add constraint 约束名 foreign key(外键列)
references 主键表(主键列)
删除:
第一步:删除外键
alter table table_name drop foreign key 约束名
第二步:删除索引
alter table table_name drop index 索引名
约束名和索引名一样
6.默认值:
添加:alter table table_name alter 列名 set default '值'
删除:alter table table_name alter 列名 drop default
添加数据
insert into table_name (列名1,列名2,列名3,...) values (值1,值2,值3,...);
#也可以省略列名,但插入值得顺序必须与创建表时得顺序一致
insert into table_name values (值1,值2,值3,...);
#一次性插入多条数据(此种方式并非标准的MySQL语句,慎用)
insert into table_name (列名1,列名2,列名3,...)
values (值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...),...
建表后添加字段(ADD)
#末尾添加
ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];
#开头添加
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] FIRST;
#在指定字段名后添加
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] AFTER <已经存在的字段名>;
更改表名(RENAME TO)
ALTER TABLE table_name RENAME TO new_table_name
删除表数据,删除表
#删除表数据(truncate操作中的table可以省略,delete操作中的*可以省略)
truncate table table_name;
delete * from table_name;
truncate、delete 清空表数据的区别 :
1> truncate 是整体删除 (速度较快),delete是逐条删除 (速度较慢)
2> truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete高的原因
3> truncate 不激活trigger (触发器),但是会重置Identity (标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的 ID数。而 delete 删除以后,identity 依旧是接着被删除的最近的那一条记录ID加1后进行记录。如果只需删除表中的部分记录,只能使用 DELETE语句配合 where条件
#删除表(直接删除表信息,速度最快,但是无法找回数据)
drop table table_user
退出MySQL
exit
quit

浙公网安备 33010602011771号