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
posted @ 2021-11-20 21:40  也许不易  阅读(43)  评论(0)    收藏  举报