• 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';

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

     

  • 相关阅读:
    activeMQ
    @Autowired与@Resource的区别
    maven工程下get的URI中带中文名称乱码解决
    linux下安装jdk
    Redis集群之Jedis的使用
    格式化Json数据
    拷贝chrome控制台打印的对象
    为什么有的代码容易理解,有的难
    ant design pro总是跨域,proxy也没设置错误,原来是浏览器缓存,清理Chrome缓存就可以了
    VScode:保存格式化问题,ESLint插件和编辑器本身冲突
  • 原文地址:https://www.cnblogs.com/chenyucong/p/5751242.html
Copyright © 2020-2023  润新知