create database 数据库名 ; (注意要引号结尾) (默认latin1)
在创建数据库的时候也可指定编码格式,如:create database 数据库名charset utf8;
选择数据库use 数据库名 切换到指定数据库下
查看库show databases; 查看所有数据库(即文件夹)
show create database db1; 查看db1数据库
select database(); 查看当前所在的数据库名称
select user(); 查看登录用户
修改库alter database db1 charset gbk; 将数据库的编码更改为gbk
删除库drop database db1; 删除数据库db1
如果不小心输入语法时写错了,在其末尾加\c 即可取消; 不小心加了‘时用\c取消不了,因为引号需要有一个配对的',所以要用'\c来取消
<span >#
<span >指定端口,可以不指定,因为MysqL默认端口就是3306port=3306
<span >#
<span >指定数据库默认字符编码character_set_server=<span >utf8<span >#<span >指定解压的目录
basedir=E:\MysqL-5.7.19-<span >winx64<span >#<span >指定data目录
datadir=E:\my_data <span >#<span >在MysqLd --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动MysqL时,就会去这个目录里找数据,如果初始化后又将data指定为其他目录,则需要重新进行初始化 *** 作,否则会报错
<span >
[clIEnt]
port=3306<span >
default-character-set=<span >utf8
<span >#<span >2. 针对客户端命令的全局配置,当MysqL客户端命令执行时,下列配置生效
<span >[clIEnt]
port=3306<span >
default-character-set=<span >utf8
user=<span >root
password=123
<span >#<span >3. 只针对MysqL这个客户端的配置,2中的是全局配置,而此处的则是只针对MysqL这个命令的局部配置
<span >[MysqL]
;port=3306<span >
;default-character-set=<span >utf8
user=<span >egon
password=4573
<span >#<span >!!!如果没有[MysqL],则用户在执行MySQL命令时的配置以[clIEnt]为准
@H_301_105@5.5.84.1(包括 4.14 种隔离级别,默认为 REPEAtable 级别,同时使用一种称为 netx-6<span >#<span >MyISAM 存储引擎不支持事务、表锁设计、支持全文索引,主要面向一些 olAP 数 据库应用,在 MysqL 5.5.8<span > 版本之前是默认的存储引擎(除 windows 版本外)。数据库系统 与文件系统一个很大的不同在于对事务的支持,MyISAM 存储引擎是不支持事务的。究其根 本,这也并不难理解。用户在所有的应用中是否都需要事务呢?在数据仓库中,如果没有 ETL 这些 *** 作,只是简单地通过报表查询还需要事务的支持吗?此外,MyISAM 存储引擎的 另一个与众不同的地方是,它的缓冲池只缓存(cache)索引文件,而不缓存数据文件,这与 大多数的数据库都不相同。<span >#<span >NDB 存储引擎
2003 年,MysqL AB 公司从 Sony EriCSSon 公司收购了 NDB 存储引擎。 NDB 存储引擎是一个集群存储引擎,类似于 Oracle 的 RAC 集群,不过与 Oracle RAC 的 share everything 结构不同的是,其结构是 share nothing 的集群架构,因此能提供更高级别的 高可用性。NDB 存储引擎的特点是数据全部放在内存中(从 5.1<span > 版本开始,可以将非索引数 据放在磁盘上),因此主键查找(primary key lookups)的速度极快,并且能够在线添加 NDB 数据存储节点(data node)以便线性地提高数据库性能。由此可见,NDB 存储引擎是高可用、 高性能、高可扩展性的数据库集群系统,其面向的也是 olTP 的数据库应用类型。<span >#<span >Memory 存储引擎
正如其名,Memory 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失。它非常适合于存储 olTP 数据库应用中临时数据的临时表,也可以作为 olAP 数据库应用中数据仓库的维度表。Memory 存储引擎默认使用哈希 索引,而不是通常熟悉的 B+<span > 树索引。
<span >#<span >Infobright 存储引擎
第三方的存储引擎。其特点是存储是按照列而非行的,因此非常 适合 olAP 的数据库应用。其官方网站是 http://www.infobright.org/<span >,上面有不少成功的数据 仓库案例可供分析。
<span >#<span >NTSE 存储引擎
<span >网易公司开发的面向其内部使用的存储引擎。目前的版本不支持事务,但提供压缩、行级缓存等特性,不久的将来会实现面向内存的事务支持。
<span >#<span >BLACKHolE
<span >黑洞存储引擎,可以应用于主备复制中的分发主库。
MysqL 数据库还有很多其他存储引擎,上述只是列举了最为常用的一些引擎。如果 你喜欢,完全可以编写专属于自己的引擎,这就是开源赋予我们的能力,也是开源的魅 力所在。
二 表 *** 作(文件)1 表相关 *** 作*** 作前要先切换到一个数据库下:use db1
创建表注意:1<span >. 在同一张表中,字段名是不能相同
2<span >. 宽度和约束条件可选
3. 字段名和类型是必须的
如:
create table t1(ID int,name varchar(50),sex enum('male','female'),age int(3)); 创建表t1,其有两个ID和name,sex,age四个字段,分别为int、varchar、enum、int类型
create table t2(ID int,name char(10))engine=innodb default charset utf8; 创建t2并指定默认引擎和默认编码
查看表show tables; 查看db1库下所有表名
show create table t1; 查看表t1的一些相关信息
desc t1; 查看表t1的结构
MariaDB [db1]> describe t1; +-------+-----------------------+------+-----+---------+-------+| FIEld | Type | Null | Key | Default | Extra |+-------+-----------------------+------+-----+---------+-------+| ID | int(11) | YES | | NulL | || name | varchar(50) | YES | | NulL | || sex | enum(,) | YES | | NulL | || age | int(3) | YES | | NulL | |+-------+-----------------------+------+-----+---------+-------+MariaDB [db1]> show create table t1\G; <span >#<span >查看表详细结构,可加\G修改表12<span >. 增加字段alter table 表名 add 字段名 数据类型 [完整性约束条件…]; <span >#<span >新增加一个字段(默认增加在最后面)
<span >
alter table 表名 add 字段名 数据类型 [完整性约束条件…],add 字段名 数据类型 [完整性约束条件…]; <span >#<span >增加多个字段
<span >
alter table 表名 add 字段名1 数据类型 [完整性约束条件…] after 字段名2; <span >#<span >将新增字段放在字段名2的后面
alter table 表名 add 字段名1 数据类型 [完整性约束条件…] first; <span >#<span >将新增字段放在所有字段的最前面
3<span >. 删除字段
alter table 表名 drop 字段名;
4<span >. 修改字段
alter table 表名 modify 字段名 数据类型 [完整性约束条件…]; <span >#<span >修改字段数据类型
<span >
alter table 表名 change 旧字段名 新字段名 旧数据类型 [完整性约束条件…]; <span >#<span >修改字段名
<span >
alter table 表名 change 旧字段名 新字段名 新数据类型 [完整性约束条件…]; <span >#<span >修改字段名和数据类型
<span >
示例:
1<span >. 修改存储引擎
MysqL><span > alter table service
-> engine=<span >innodb;
2<span >. 添加字段
MysqL><span > alter table student10
-> add name varchar(20) <span >not<span > null,-> add age int(3) <span >not null default 22<span >;
MysqL><span > alter table student10
-> add stu_num varchar(10) <span >not null after name; //<span >添加name字段之后
MysqL><span > alter table student10
-> add sex enum(<span >'<span >male<span >',<span >'<span >female<span >') default <span >'<span >male<span >' first; //<span >添加到最前面
3<span >. 删除字段
MysqL><span > alter table student10
-><span > drop sex;
MysqL><span > alter table service
-><span > drop mac;
4<span >. 修改字段类型modify
MysqL><span > alter table student10
-> modify age int(3<span >);
MysqL><span > alter table student10
-> modify ID int(11) <span >not null primary key auto_increment; //<span >修改为主键
5<span >. 增加约束(针对已有的主键增加auto_increment)
MysqL> alter table student10 modify ID int(11) <span >not<span > null primary key auto_increment;
ERROR 1068 (42000<span >): Multiple primary key defined
MysqL> alter table student10 modify ID int(11) <span >not<span > null auto_increment;
query OK,0 rows affected (0.01<span > sec)
Records: 0 Duplicates: 0 Warnings: 0
6<span >. 对已经存在的表增加复合主键
MysqL><span > alter table service2
-><span > add primary key(host_ip,port);
7<span >. 增加主键
MysqL><span > alter table student1
-> modify name varchar(10) <span >not<span > null primary key;
8<span >. 增加主键和自动增长
MysqL><span > alter table student1
-> modify ID int <span >not<span > null primary key auto_increment;
9<span >. 删除主键
a. 删除自增约束
MysqL> alter table student10 modify ID int(11) <span >not<span > null;
b. 删除主键
MysqL><span > alter table student10
-> drop primary key;
alter table t1 add age int; 给表t1增加新字段age
alter table t1 modify name char(12); 将表t1的name字段的格式修改字符个数为12
alter table t1 rename t2; 将表t1名称修改为t2
删除表drop table 表名;
MysqL>>> create table t1(name varchar(20> show create table t1; MysqL> insert into t1 values(); ERROR 1366><span >#
<span >解决方法一:删除库db1,重建db1,字符编码指定为utf8<span >#
<span >解决方法二:修改MysqL> alter table t1 charset utf8; <span >#<span >修改表t1的编码
MysqL> insert into t1 values(<span >'<span >林<span >'); <span >#<span >虽然t1的编码改了,但是t1的字段name仍然是按照latin1编码创建的
ERROR 1366<span > (HY000):
MysqL> alter table t1 modify name varchar(20); <span >#<span >需要重新定义下字段name
MysqL> insert into t1 values(<span >'<span >林<span >'<span >);
MysqL> select * <span >from<span > t1;
+------+
| name |
+------+
| 林 |
+------+<span >
ps:不要忘记将数据库编码也改成utf8,这样以后在该数据库下创建表时,都默认utf8编码了
<span >#<span >配置文件:http://blog.csdn.net/yipiankongbai/article/details/16937815
-character-set=-character-set=-character-set=<span >#<span >MysqL5.5以上:修改方式有所改动<span > [MysqLd]
character-set-server=<span >utf8
collation-server=<span >utf8_general_ci
[clIEnt]
default-character-set=<span >utf8
[MysqL]
default-character-set=<span >utf8
<span >#<span >2. 重启服务<span >
<span >3. 查看修改结果:<span >\s
show variables like <span >'<span >%char%<span >'
MysqL> select * <span >from t1 where 1=2; //<span >条件为假,查不到任何记录
Empty set (0.00<span > sec)
方法一:
MysqL
query OK,0 rows affected (0.00<span > sec)
Records: 0 Duplicates: 0 Warnings: 0
方法二:
MysqL> create table t2 like t1;
语法二:insert into 表名 values (值1,值3&hel<a href="https://m.jb51.cc/tag/li/" target="_blank" >li</a>p;值n);
2<span >. 指定字段插入数据语法:
insert into 表名(字段1,字段3…) values (值1,值3…);
3<span >. 插入多条记录
语法:
insert into 表名 values
(值1,值3…值n),(值1,值3…值n);
update MysqL.user set password=password(‘123<span >’)
where user=’root’ <span >and host=’localhost’;三 删除数据delete示例:
delete <span >from MysqL.user where password=’’;四 查询数据select
单表查询:
多表查询:
总结以上是内存溢出为你收集整理的MySQL常见的库 *** 作,表 *** 作,数据 *** 作集锦及一些注意事项全部内容,希望文章能够帮你解决MySQL常见的库 *** 作,表 *** 作,数据 *** 作集锦及一些注意事项所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)