mysql 操作指令笔记

设置区分大小写:

打开my.ini,最后加入:

[mysqld]

lower_case_table_names=2  (2表示区分大小写,但仅限于字段,数据库名、表名、存储过程名都是小写的)

查看方法:show variables like '%case%';

记住,mysql的语句不区分大小写,在存储过程中,例如变量名为userName,

select count(*) from table where UserName=userName;  =>结果恒等于表的总记录行数,因为不区分大小写,UserName=userName为true

另外,本人在C#中调用存储过程,由于把数据库名写为大写NewsDB,导致无法找到存储过程,但其实把连接字符串改为newsdb就OK了

 

数据类型:

数字类型:

  整型:tinyint smallint mediumint int bigint

  浮点型:float double real decimal

字符串类型:

  字符串:char varchar

  文本: tinytext、text、mediumtext、longtext

  二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

日期和时间: date、time、datetime、timestamp、year

 

DDL:

创建数据库:create database 数据库名 character [set gbk];

 

创建数据表:(用户表为例)

create table UserInfo

(

UserID int unsigned not null auto_increment primary key,

UserName varchar(20) not null,

UserPwd varchar(30) not null,

NickName varchar(20) not null default "游客"

);  注:这里的unsigned表示非负数,生成表后,字段类型会变为int(10),与默认int的int(11)不一样,如果是用于主外键,则最好不要加unsigned

 

创建前先判断是否存在:drop database if exists 数据库名;

 

使用sql脚本创建:mysql -D 数据库名 -u root -p < 脚本文件名.sql  注:-D 数据库名,如果脚本中有重新创建数据库,则可以不写

 

创建主外键约束:

为主表添加外键:

语法:alter table 外键表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 主键表名(主键字段名);

关闭约束检查:SET foreign_key_checks = 0;

打开约束检查:SET foreign_key_checks = 1;

修改字段可为空:alter table 表名 modify 字段名 类型 null;

创建存储过程:

use 数据库名;

drop procedure if exists 存储过程名;

delimiter //

create procedure 存储过程名(参数1、参数2......)

begin

过程体

end

//

delimiter ;

创建视图:

use 数据库名;

drop view if exists 视图名;

create view 视图名 as

select ... from ... where ...

DML:

增:insert into 表名 (字段1,字段2...) values (值1,值2...);

删:delete from 表名 where 条件;

改:update 表名 set 字段1=值1,字段2=值2...... where 条件;

DQL:

查看约束关系:SELECT * FROM information_schema.TABLE_CONSTRAINTS;

 

查看数据库:show databases;

使用数据库:use 数据库名;

 

查看所有表:show tables;

查看所有字段:show columns from 表名;

查看存储过程:select 'name' from mysql.proc where db='数据库名' and 'type'='PROCEDURE';

未完......待续......