设置区分大小写:
打开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';
未完......待续......