mysql 操作指令笔记
2016-08-08 22:27
489 查看
设置区分大小写:
打开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 数据库名,如果脚本中有重新创建数据库,则可以不写
创建主外键约束:
关闭约束检查: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';
未完......待续......
打开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 数据库名,如果脚本中有重新创建数据库,则可以不写
创建主外键约束:
为主表添加外键:
关闭约束检查: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';
未完......待续......
相关文章推荐
- linux下c语言学习笔记——操作mysql
- linux下mysql的最常用的操作指令_创建用户、备份和还原数据库
- MySQL学习笔记2:数据库的基本操作
- 【MYSQL数据库】MYSQL学习笔记-mysql分区基本操作
- mysql 基础操作笔记之一
- Windows 的命令行来操作 MySQL 的指令
- 工作笔记:mysql 基本操作
- MYSQL常用操作指令
- MYSQL常用操作指令
- mysql5.5.28.tar.gz编译安装操作笔记
- CUDA学习笔记之同步操作指令
- SQL 学习笔记<四> MySQL嵌套查询,集合操作
- linux笔记3(过滤器、管道、常用文件管理操作指令)
- MYSQL常用操作指令
- linux下c语言学习笔记——操作mysql
- Linux下C语言学习笔记—操作MySQL
- MySQL服务器学习笔记!(二) ——数据库各项操作
- PHP特级视频教程 笔记心得 第十五集 mysql调优,mysql优化 MySQL基础操作(一)
- MySQL学习笔记2:数据库的基本操作(创建删除查看)
- 【MYSQL数据库】MYSQL学习笔记-mysql分区基本操作