Mysql基本操作

Mysql基本操作
                       

数据库核心-------增 删 改 查

|-----启动mysql服务的dos命令

停止mysql:net stop mysql
启动mysql:net start mysql


|-----连接、退出mysql

格式:mysql  -h主机地址 -u用户名 p用户密码
 -前均有空格,h代表进入的服务器(本机可以不写),u代表用户名(用户名默认为root),p代表密码(默认密码为p0).mysql提示符是mysql>。
退出mysql命令:quit 或者 exit


|-----修改密码

Set password=password(‘新密码’);  /*mysql命令*/
mysqladmin -u 用户名-p 原密码 password 新密码  /*dos命令,不能进入mysql中执行*/

|-----操作技巧

如果你打命令时,回车后发现忘记加分号,无须重打一遍命令,只要打个英语状态的分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志。
可以使用光标上下键调出以前的命令。
如果你的sql命令执行后,报错了。你可以在错误信息中找near 单词,它会告诉你错误在什么的附近。

|-----mysql命令注释

/*我可以作为注释*/   #(--)我可以作为注释

|-----mysql命令

放弃正在输入的命令:\c
显示命令清单:\h
退出mysql程序:\q
查看MySQL服务器状态信息:\s


 

|-----数据库的操作:

show databases;        /*显示数据库列表*/
create database 库名;       /*新建数据库*/
drop [if exists] database 库名;     /*删除数据库*/
use  数据库名;        /*选定使用的数据库*/

|-----表格数据的操作:

show tables;           /*查看数据库中的表*/
create table表名(字段名 类型 [约束条件][,字段2.。。])   /* 建表-表格数据结构*/
describe表名; 或desc 表名;/*显示数据表的结构*/
drop [if exists]  table 表名;  /*删除数据表*/
delete from 表名;   /*清空(删除)数据表*/
Select * from表名;  /*显示(查看)表中的记录*/
Insert into 表名(字段名1,字段名2.。。) values (值1,值2.。。。) /*向表中的插入(添加)指定字段的数据*/
Update 表名 set 字段名=值 [where  条件]  /*修改表中的数据*/


|-----表结构的操作:

alter table 旧表名 rename 新表名 或者  rename table 表名 to 新名 /*修改表名*/
alter table 表名modify 字段名数据类型 /*修改字段的数据类型*/
alter table 表名 change 旧字段名 新字段名 新数据类型 /*修改字段名*/
alter table 表名  modify 字段名 数据类型 default 默认值; /*修改字段的默认值*/
alter table 表名 add 新字段名 数据类型[约束条件] [after 字段2]/[first] /*添加字段,默认添加在最后一个字段后面*/
alter table 表名 drop 字段名 /*删除字段*/
alter table 表名 modify 字段1 数据类型 [after 字段2]/[first]; /*修改字段的排列位置*/

|-----约束条件: 非空约束,主键约束 ,外键约束,检查性约束,唯一约束,默认约束

添加自增长:---alter table 表名 modify 字段名 数据类型 auto_increment;
删除自增长约束:---alter table 表名 modify 主键名 类型;
添加主键约束:---alter table 表名 add primary key (字段名);
---alter table 表名 add column 字段名 字段类型 auto_increment  PRIMARY KEY;/*通过添加字段,添加主键*/
删除主键约束(如果主键有自增长,要先删除自增长,才能删除主键):---alter table表名 drop primary key;
添加唯一约束:--- alter table 表名 add unique [key] (字段名);
删除唯一约束:---alter table 表名 drop index 字段名;
添加外键约束:--- alter table 表名 add constraint 外键约束匿名 foreign key (外键字段) references 被引用的表的表名(被引用的子段的字段名); 
删除外键:---alter table 表名 drop foreign key 外键匿名;
添加非空约束:---alter table 表名 modify 字段名 字段类型 not null;
删除非空约束:---alter table 表名 modify 字段名 字段类型 [null];
添加默认约束:---alter table 表名 modify 字段名 字段类型 default '默认值';             
删除默认约束:---alter table 表名 modify 字段名 字段类型 [default null];
---alter table 表名 alter [column] 字段名 set default 默认值; /*修改字段的默认值*/

---create view 视图名 as  sql结果;/*创建视图*/

|-----数据备份和恢复

Select * from 表名 into outfile “D:/myTable.txt”; /*到出数据表的数据到指定文件中*/

Source D:/mydb.sql /*将外部的sql文件导入到数据库中*/

 Show create table 表名; /*查看表的创建,可以据此复制出sql命令,查看外键匿名(删除外键使使用)*/

mysqldump -uroot –p123  test > D:/a.sql 在dos 窗口下,输入该命令,test是要导出的数据库的名字。

mysqldump -uroot –p123  test  t1 > D:/a.sql在dos 窗口下,输入该命令,导出test数据库中的t1表。

|-----默认情况下:mysql 对导入文件大小有限制的,最大为2M,所以当文件很大时候,无法直接导入

解决办法:1.在php.ini中修改相关参数:
影响mysql导入文件大小的参数有三个:

memory_limit=128M,upload_max_filesize=2M,post_max_size=8M
修改upload_max_filesize=200 M  这里修改满足你需要的大小,可以同时修改其他两项memory_limit=250M  post_max_size=200M这样就可以导入200M以下的.sql文件了。

|----外键

含有外键的表A,外键字段的数据来自表B,形成依赖。因此表A的外键字段只能使用表B中相应字段含有的数据。

外键关系是由含有外键字段的表A主动建立的,因此删除表时,应当先删除表A,再删除被引用的表。体现了安全性和完整性。

|----外键建立的条件

表A和表B中建立外键关系的字段的类型必须相同,若A表的C字段为外键,那么B中的D字段的类型必须和C字段相同,且D字段约束条件为主键或unique。

|------含有外键的表是从表,从表的数据依赖于主表。

从表里的外键的值,只能来自于主表相应的字段的值。主表中相应的字段不存在的值,从表的外键也不能有,也无法有,因为插不进去这样的数据。(从表的操作受到限制)

在删除数据表的时候,只能先删除从表(含有外键的表),才能删除主表,因为外键关系是由从表发出的,并且从表的数据来自于主表。

 

技术问题

|----不能在控制台输入中文:原因是无法切换输入法

第一种:Ctrl+空格键可以在dos中切换中英文输入法。

第二种:设置window系统默认的输入语言为搜狗输入法。然后重启dos 窗口,就可以输入中文了。

Dos窗口点击右键—》属性 ;可以查看当前窗口的编码及对窗口外观的设置。

Dos窗口点击右键—》默认值 ;可以查看和设置当前窗口的编码,对窗口外观的设置。

|-----能在mysql客户端输入中文,但是不能插入到表中。

这个数据库和表的编码有关。因此就要修改表的编码和数据库的编码。具体为:修改表格的编码,修改相应字段的编码(表格无数据)。注意:dos窗口可能只支持mysql默认编码为gbk时,才能在dos窗口插入中文。

mysql> alter table users character set GBK; /*更改表格的字符集为GBK*/

mysql> alter table users modify username char(20) character set gbk;/*更改字段的字符集*/ 

|---@@关于修改mysql配置文件,实现中文支持的方法:

MySQL\MySQL Server 5.5\my.ini 文件中的

[mysql]

default-character-set=utf8

# The default character set that will be used when a new schema or table is

# created and no character set is defined

character-set-server=utf8

注意:修改后要重启mysql,不是重启dos窗口。(最好是两者都重启)。这种修改方式不会改变已经存在的数据库和表的编码。因此就需要重新建这些数据库和表。

@@其他:

A:重装数据库

B:执行bin包下的MySQLInstanceConfig.exe程序,重新设置配置。需要重启mysql和dos窗口,否则只有Server characterset:和Db characterset发生改变。 

C:在创建数据库和表时指定字符集:create database yourDB  character set gbk;

create table yourtable(id int) character set gbk;

注意:set names gbk;仅对服务器不重启时有效,改变所有的数据库的编码,但是只是暂时的,原有的编码方式依然保留。

 

|-----修改端口号

MySQL\MySQL Server 5.5\my.ini 文件中的

[client]

port=3305

[mysql]

 [mysqld]

# The TCP/IP Portthe MySQL Server will listen on

port=3305

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值