以下是MySQL得基本操作,需要的,可以收藏一下。方便需要的时候,手到拈来。

1、启动MySQL服务器

开始 -> 运行   输入“cmd”,然后在命令提示符下输入“net start MySQL”指令。

2、连接MySQL服务器

输入指令:MySQL -uroot  -h127.0.0.1 -p111(-h127.0.0.1看个人情况输不输)

注:用户名为“root”,MySQL数据库服务器地址为“127.0.0.1”,密码为“111”,三者之间必须有空格。

3、关闭MySQL服务器

开始 -> 运行   输入“cmd”,然后在命令提示符下输入“net stop MySQL”指令。

二、操作MySQL数据库

1、创建数据库

create database 数据库名;

2、查看数据库

show databases;

3、选择指定数据库

use 数据库名;

4、删除数据库

drop database 数据库名;

注:自动删除MySQL安装目录中的“C:/AppServ/MySQL/data”文件夹。

三、操作MySQL数据表

1、创建表

create table 表名 (column_name column_type not null,...)

create table语句的属性说明

属性

说明

属性

说明

column_name

字段名

Primary key

该列是否为主码

column_type

字段类型

AUTO_INCREMNT

该列是否自动编号

Not null | null

该列是否允许为空

 

 

 

 

 

 

 

创建数据表后,“C:\AppServ\MySQL\data\数据库名\”中自动创建对应表文件(“表名.frm”,“表名.MYD”,“表名.MYI”)

2、查看数据库中的表

show tables;

3、查看数据库中所有的表

show tables;(前提是使用use database 数据库;)

4、查看数据表结构

describe 表名;

5、修改数据表结构

alter table 表名
  add [column] create_definition [first | after column_name]  //添加新字段
  add primary key (index_col_name,...)  //添加主码名称
  alter [column] col_name {set default literal |rop default}  //修改字段名称
  change [column] old_col_name create_definition  //修改字段名及类型
  modify [column] create_definition  //修改字段类型
  drop [column] col_name  //删除字段
  drop primary key  //删除主码
  rename [as] new_tablename  //更改表名
eg:alter table Admin_Info
    drop A_Pwd,
    rename as Admin_Info2;

6、删除指定数据表

drop table 表名;

四、操作MySQL数据

1、添加表数据

语法1:insert into 表名 values(值1,值2,...)(自增长的列应写null)
语法2:insert into 表名(字段1,字段2,...) values (值1,值2,...)
语法3:insert into 表名 set 字段1=值1,字段2=值2,...

2、更新表数据

update 表名 set 字段1=值1 where 查询条件

若无查询条件,表中所有数据行都会被修改。

3、删除表数据

delete from 表名 where 查询条件

若无查询条件,表中所有数据行都会被删除。

4、查询表数据

select * from 表名;

5、限制查询记录数

select * from 表名 limit[start] length
start:表示从第几行记录开始输出,0表示第1行
库备份
dbname参数表示数据库的名称;
 table表示备份那个数据库的表名
 backupname备份数据库名字
  
 第一种:备份一个数据库的那些表
 mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql
  
 第二种:备份多个数据库
  
 mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
 加上了--databases选项,然后后面跟多个数据库
  
  
 第三种:备份所有库
  
 mysqldump -u username -p -all-databases > BackupName.sql


第四种:就是将MySQL中的数据库文件直接复制出来。这是最简单,速度最快的方法。
 
不过在此之前,要先将服务器停止,这样才可以保证在复制期间数据库的数据不会发生变化。
如果在复制数据库的过程中还有数据写入,就会造成数据不一致。这种情况在开发环境可以,
但是在生产环境中很难允许备份服务器。
 
  注意:这种方法不适用于InnoDB存储引擎的表,而对于MyISAM存储引擎的表很方便。
同时,还原时MySQL的版本最好相同。
   
第五种:第三方client软件备份

 

还原库

mysql -u root -p  dbname< BackupName.sql
dbname  是可选项 ,是用于某些表还原到那些库才需要用到dbname
直接还原库不用加上dbname,也就是数据库名

修改表结构(字段)

修改一列类型
       alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
       alter table users2 modify age tinyint default 20;
       alter table users2 modify age int  after id;
    
 修改列名
       alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
       alter table users2 change age Age int default 28 first;删除一列
       alter table tab_name drop [column] 列名;
       -- 思考:删除多列呢?删一个填一个呢?
       alter table users2 
             add salary float(6,2) unsigned not null after name,
             drop addr;    修改表名
       rename table 表名 to 新表名;
 修该表所用的字符集    
       alter table student character set utf8;删除表
     drop table tab_name;添加主键,删除主键
     alter table tab_name add primary key(字段名称,...) 
     alter table users drop primary key;eg:
     mysql> create table test5(num int auto_increment);
     ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
     create table test(num int primary key auto_increment);
     -- 思考,如何删除主键?
     alter table test modify id int;   -- auto_increment没了,但这样写主键依然存在,所以还要加上下面这句
     alter table test drop primary key;-- 仅仅用这句也无法直接删除主键-- 唯一索引
     alter table tab_name add unique [index|key] [索引名称](字段名称,...)     alter table users add unique(name)-- 索引值默认为字段名show create table users;
     alter table users add unique key user_name(name);-- 索引值为user_name    -- 添加联合索引
     alter table users add unique index name_age(name,age);#show create table users;    -- 删除唯一索引
     alter table tab_name drop {index|key} index_name外键约束
创建外键
---  每一个班主任会对应多个学生 , 而每个学生只能对应一个班主任
----主表
CREATE TABLE ClassCharger(
       id TINYINT PRIMARY KEY auto_increment,
        name VARCHAR (20),
        age INT ,
        is_marriged boolean  -- show create table ClassCharger: tinyint(1));
INSERT INTO ClassCharger (name,age,is_marriged) VALUES ("冰冰",12,0),
                                                        ("丹丹",14,0),
                                                        ("歪歪",22,0),
                                                        ("姗姗",20,0),
                                                        ("小雨",21,0); ----子表
CREATE TABLE Student(
       id INT PRIMARY KEY auto_increment,
        name VARCHAR (20),
        charger_id TINYINT,     --切记:作为外键一定要和关联主键的数据类型保持一致
        -- [ADD CONSTRAINT charger_fk_stu]FOREIGN KEY (charger_id) REFERENCES ClassCharger(id)) ENGINE=INNODB;
INSERT INTO Student(name,charger_id) VALUES ("alvin1",2),
                                             ("alvin2",4),
                                             ("alvin3",1),
                                             ("alvin4",3),
                                             ("alvin5",1),
                                             ("alvin6",3),
                                             ("alvin7",2); DELETE FROM ClassCharger WHERE name="冰冰";
 INSERT student (name,charger_id) VALUES ("yuan",1);
 -- 删除居然成功,可是 alvin3显示还是有班主任id=1的冰冰的;-----------增加外键和删除外键---------
ALTER TABLE student  ADD CONSTRAINT abc
                      FOREIGN KEY(charger_id)
                      REFERENCES  classcharger(id); ALTER TABLE student DROP FOREIGN KEY abc;