MySQL整理

把MySQL的一些常用语句和知识整理了一下可供参考。博客园的Markdown不支持TOC有点尴尬

登陆

mysql -uroot -ppassword -P3306 -hhost(127.0.0.1)

MySQL语句规范

  • 关键字与函数名都大写
  • 数据库名,表名,字段名小写
  • SQL语句以分号结尾

常用语句示范

  1. SELECT VERSION();

    作用:显示版本号

  2. SELECT NOW();

    作用:显示时间

  3. SELECT USER();

    作用:显示使用者

  4. CREATE {DATABASE} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name

    作用:创建数据库

    例如:CREATE DATABASE IF NOT EXISTS test1 DEFAULT CHARACTER SET =utf8

    CREATE DATABASE test1 CHARACTER SET utf8

  5. SHOW {DATABASES} [LINK ‘pattern’]

    作用:显示已经有的数据库

  6. ALTER {DATABASE} [db_name] [DEFAULT] CHARACTER SET [=] charset_name

    作用:修改数据库编码

  7. DROP {DATABASE} [IF EXISTS] db_name

    作用:删除数据库

    数据类型

  • TINYINT

    有符号型:-128-127(1字节)

    无符号型:0-255

  • SMALLINT(2字节)

    [U]:-32768

    [S]:0-65535

  • MEDIUMINT (3字节)
  • INT (4字节)
  • BIGINT (8字节)
  • FLOAT[(M,D)] M数字总数,D为小数点后的位数,7位小数左右
  • DOUBLE[(M,D)]
  • YEAR 1
  • TIME 3
  • DATE 3
  • DATETIME 8
  • TIMESTAMP 4(一般不用,用数字来做,跨时区等问题)
  • CHAR(M) M个字节 M的范围0-255
  • VARCHAR(M) L+1个字节 L<=M 0<=M<=65535
  • TINYTEXT L+1字节 L<28
  • MEDIUMTEXT
  • LONGTEXT
  • ENUM 可供选择的集合
  • SET 集合

    数据表

    数据表是数据库最重要的组成部分之一

    行:记录

    列:字段

SQL语句

登录后用USE db_name打开数据库

SELECT DATABASE(); 检验

  • CREATE TABLE [IF NOT EXISTS] table_name (

    Column_name data_type,

    ….

    )

    比如:

    CREATE TABLE tb1(

    Username VARCHAR(20) NOT NULL,

    Age TINYINT UNSIGNED NULL,

    SALARY FLOAT(8,2) UNSIGNED

    );

    注:NOT NULL 标注属性是否允许字段为空

  • SHOW TABLES [FROM db_name] [LIKE ‘pattern’]

    作用:显示数据表(从某个库中):注意当前数据库不会改变

  • SHOW COLUMNS FROM tbl_name

    作用:显示字段

  • 3. INSERT [INTO] tbl_name [(col_name,…)] VALUES(val,…)

    作用:插入记录,如果省略(col_name),需要赋值所有的值

  • 4. SELECT expr,…. FROM tbl_name

    作用:查找记录

    SELECT * FROM tb1(*过滤字段)

属性讲解

  • NULL | NOT NULL 值是否为空
  • AUTO_INCREMENT :自动编号,与主键组合使用;

    默认形况下,起始值为1,增量为1;

  • PRIMARY KEY :

    主键约束,一张表一个主键

    主键保证唯一性

    主键自动NOT NULL

    可以写成KEY

    比如:

    CREATE TABLE tb3(

    Id SMALLINT USSIGNED AUTO_INCREAMENT PRIMARY KEY,

    Username VARCHAR(20) NOT NULL

    );

  • UNIQUE KEY

    唯一约束

  • DEFAULT

    默认值

    举例:

    CREATE TABLE tb3(

    Id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    Username VARCHAR(20) NOT NULL,

    Sex ENUM(‘MALE’,’FEMALE’,’secret’) DEFAULT ‘secret’**

    );

约束

  1. 表级约束
  2. 列级约束
  3. 约束类型:非空约束,主键约束,唯一约束,默认约束,外键约束
  4. 外键约束:FOREIGN KEY
  • 保持数据一致性,一对一或一对多

    • 父表子表用一样的引擎:InnoDB,禁止使用临时表
  • 数字的类型必须一样,字符型长度可以不一样
  • 外键列和参照列必须创建索引,如果外键列没有索引,MySQL自动创建
  • 例子:

    CREATE TABLE users(

    Id SMALLINT PRIMARY KEY AUTO_INCREMENT,

    Name VARCHAR(20) NOT NULL,

    PID INT,

    FOREIGN KEY (PID) REFERENCES province (id)

    );

    Pid的类型必须和id相同

  • 参照操作

    CASCADE:从父表删除或更新则自动删除或更新子表中的行

    SET NULL:从父表删除或更新行,设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL

    RESTRICT:拒绝对父表的删除或更新操作

    NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同

    例子:

    CREATE TABLE users(

    Id SMALLINT PRIMARY KEY AUTO_INCREMENT,

    Name VARCHAR(20) NOT NULL,

    PID INT,8

    FOREIGN KEY (PID) REFERENCES province (id)ON DELETE CASCADE

    );

原文地址:https://www.cnblogs.com/ustc-rjgc2017/p/8168716.html

时间: 2024-07-30 05:57:28

MySQL整理的相关文章

.NetCore中EFCore for MySql整理(二)

一.简介 EF Core for MySql的官方版本MySql.Data.EntityFrameworkCore 目前正是版已经可用当前版本v6.10,对于以前的预览版参考:http://www.cnblogs.com/tianma3798/p/6940794.html 1.MySql的核心 安装 Install-Package MySql.Data.EntityFrameworkCore -Version 6.10.5 2.MySql的 生成工具安装 Install-Package MySq

.NetCore中EFCore for MySql整理

一.MySql官方提供了Ef Core对MySql的支持,但现在还处于预览版 Install-Package MySql.Data.EntityFrameworkCore -Pre Install-Package MySql.Data.EntityFrameworkCore.Design -Pre 当前程序包依赖Microsoft.EntityFrameworkCore,目前没找到API文档啥的,MySql.Data.EntityFrameworkCore.Design的用法也没 找到. Nug

MySQL整理(一)

一.数据管理发展阶段 人工管理阶段→文件系统阶段→数据库系统阶段    二.数据库管理系统提供的功能   (1)数据定义语言DDL:提供数据定义语言定义数据库及各种对象,定义数据的完整性约束和保密限制等约束. (2)数据操作语言DML:提供数据操作语言操作数据,主要分两类:检索(查询)和更新(插入,删除,更新) (3)数据控制语言DCL:提供数据控制语言控制数据库的完整性限制,数据安全性控制等.    三.为什么使用MySQL MySQL是由原MySQL AB公司自主研发的,目前已被Sun公司收

我的MySQL整理

MySql unique的实现原理简析 MYSQL操作

MySQL整理(二)

一.MySQL操作表的约束 MySQL提供了一系列机制来检查数据库表中的数据是否满足规定条件,以此来保证数据库表中数据的准确性和一致性,这种机制就是约束. (1)设置非空约束(NOT NULL),唯一约束(UNIQUE),字段默认值(DEFAULT) create table 表名( uid int unique,(唯一性约束,UK) name varchar(5) not null,(非空约束,NK) age varchar(3) default '12'(设置字段默认值) ); (2)主键约

mysql 整理

1.grant all privileges on *.* to root@localhost  identified by 'passwd'; flush privileges; grant select,insert,update,delete,create,drop on 库.表 to 用户@IP identified by '密码′; 2.无任何限制的访问mysql,启动方法,用于 /usr/bin/mysqld_safe --skip-grant-tables & 3.导出meetin

4-20 mysql 整理 (建表语句和mysql命令)

create  table  [if not exists] 表名(    字段1 数据类型 [约束或索引列表],    字段2 数据类型 [约束或索引列表]) [表选项列表];#虚拟表的概念:将查询出来的结果(一张表) 当做表来操作#讲虚拟表保存起来(放到变量里面)这就是视图#创建用于登录的表  drop table if exists login;  如果存在就删掉新建  create table login(    userid varchar(20) not null primary k

20180811 mysql 整理

1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql> 2.连接到远程主机上的MYSQL.假设远程主机的IP为:11

mysql整理-常用sql语句

一.常用sql show variables like 'character_set_client';#查询字符集 show databases;#列出所有的服务器上的数据库alter create database if not exists test;#创建一个数据库 drop database fk;#删除数据库 show tables from test;#显示一个数据库中的表 use test; create table tb_dept( Id int primary key auto