1.sql的基本语法

  对数据库

    create database db1;  创建数据库

  对表:

    create database t1(id int,name char(10));  创建表

    show create table t1;  查看创建的t1表

    show tables;  查看所有的表

    desc t1;  查看表的详细结构

  对数据:

    insert into t1(id,name) values(1,"zhang"),(2,"qing");  插入数据

    insert into t1 value(3,"qing");

    select id from t1;  查询ti表的id

    select id,name from t1;

    select * from t1;

    select * from db1.t1 where id = 2;

    关系型数据库 mysql,db2,oracle,sqlite 表中存储

    非关系型数据库 monogodb redis

            key:value 基于model模型 obj.insert

2.存储引擎

  mysql 5.5版本之后默认为innodb存储引擎

  另外还有mysiam、memory、blackhome

  #memory,在重启mysql或者重启机器后,表内数据清空

  #blackhole 往表内插入任何数据,都相当于丢入黑洞 表内永远不存记录

  复制表结构和表数据

    create table a1 select * from db2.t1;

  值复制表结构

    create table a2 select * from db2.t1 where 1>2;

    create table a3 like db2.t1;

3.数据类型

  1.数字:

    整型:tinyint int bigint

    小数:

      float:不精准(位数比较短)

      double:不精准(位数比较长)

      decimal:精准(内部原理是以字符串形式去存的)

  2.字符串:

    char(10):简单粗暴,浪费空间,存取速度快

    varchar:精准,节省空间,存取速度慢

    sql优化:创建表时,定长的类型往前放,,变长的往后放

  3.时间类型:

    year,date,time,datetime

  4.枚举类型与集合类型

    enum 和set

  整型默认是signed有符号的 范围-128~127

    sql中没有boolean类型 使用tinyint(1)来表示boolean值 1表示true 0表示false

  int类型后面的存储是显示宽度而不是存储宽度,其他的数据类型都是存储宽度

    所以我们来设计表的时候 int类型的字段不用加显示宽度默认是总长度的位数+1

    总结一句话,定义int类型不需要加宽度,使用默认值就行

  datetime

      now() sql的内置函数 根据数据类型生成对应的时间格式

  char 定长 存储速度快 浪费空间

  varchar 变长 存储速度慢  节省空间

  enum 枚举:表示多选一

  set 集合 :表示多选一或者多选多

create table consumer(
id int unsigned,
name varchar(),
sex enum('male','female','other'),
level enum('vip','svip','vvip'),
fav set('smoke','drink','tangtou') ); insert into consumer values(,'一 宁','other','vvip','smoke,drink,tangtou');

小结:

  数据类型:

    整型 tinyyint int bigint

    浮点型:float double decimal

    时间:year data time  datatime

    字符:char 定长>varchar 变长>text 文本

    枚举:enum

    集合:set

    布尔:boolean tinyint(1) 存储

    函数:now()根据字段的数据类型获取当前的时间格式

        lenght()获取字节数

        char_lenght()获取字符长度

    sql默认是有符号的 signed,如果设置无符号unsigned 要显示用0填充 zerofill

4.约束 ******

  作用保证数据的完整性和一致性

  表的设计

    1.not null 与 default

      create table tb1(id int not null default 2,name char(20) not null);

      insert into tb1 values(1,"zhang");

      insert into tb1(name) values("qing");

      insert into tb1(id) values(3);  x

    2.unique

      单列唯一

        create table dep(id int not null,name varchar(20) unique);

        insert into dep(id,name) values(1,"zhang");

        insert into dep(id,name) values(2,"zhang");  x

      多列唯一 表示每一列都唯一

        create table dep2(id int unique,name varchar(20) unique);

        inset into dep2(id,name) valuse(1,"zhang");

        insert into dep2(id,name) valuse(1,"qing"); x

        insert into dep2(id,name) values(2,"zhang"); x

      组合唯一(联合唯一)只要有一列不同就能插入数据

        create table dep3(

          id int,

          name varchar(20),

          unique(id,name)          

        );

        insert into dep3(id,name) values(1,"zhang");

        insert into dep3(id,name) values(1,"qing");

        insert into dep3(id,name) values(2,"zhang");

        insert into dep3(id,name) values(1,"zhang");   x

  3.primary key(索引优化查询)

    sql版本中,一张表中值允许有一个主键,通常都是id,cid,sid.....

      create table stu(id int primary auto_increment,name varchar(10) unique);

      insert into stu(name) values("zhang");

      化学反应 not unll + unique

      create table (id int not unll unique auto_increment,name varchar(20) unique);

      primary key (索引优化) 查询大量数据

  4.auto_increment

    自增

    

MySQL服务器2的更多相关文章

  1. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  2. 如何配置远程mysql服务器

    如何配置远程mysql服务器 分配用户权限 可以先看一下目前的用户权限状况: use mysql; select host,user,password from user; 然后分配新的权限给某一用户 ...

  3. MYSQL服务器my.cnf配置文档详解

    MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...

  4. mysql服务器和配置优化

    一.存储引擎 mysql中有多种存储引擎,一般常见的有三种:   MyIsam InnoDB Memory 用途 快读 完整的事务支持 内存数据 锁 全表锁定 多种隔离级别的行锁 全表锁定 持久性 基 ...

  5. 远程连接mysql数据库时报错: 错误代码 2003不能连接到MySQL服务器在*.*.*.*(111)

    在测试服务器上安装完mysql后, 服务器自己访问没有问题, 但是本地通过sql客户端连接时报错: 错误代码 2003不能连接到MySQL服务器在*.*.*.*(111).在网上查了一些资料,解决方案 ...

  6. 登录phpmyadmin提示: #1045 无法登录 MySQL 服务器

    打开phpmyadmin,进行登录,出现以下问题,提示:#1045 无法登录 MySQL 服务器 或许出现以下错误情况:phpmyadmin:#1045 无法登录 MySQL 服务器.Access d ...

  7. 如何将自己的windows设置为mysql服务器

    1.安装mysql 服务器 2.创建超级用户,即 用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; ...

  8. 一台MySQL服务器启动多个端口

    一台MySQL服务器启动多个端口 在测试Mysql多主一从服务器,即一个从服务器多端口同步不同主库.本文记录了开启不同端口的操作. 详细步骤: 1.首先要先把my.cnf配置文件复制一份,开几个端口要 ...

  9. 详解 Spotlight on MySQL监控MySQL服务器

    前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器. 注:http://www.cnblogs.com/J ...

  10. 1104关于优化mysql服务器几个参数和思路

    转自http://www.cnblogs.com/AloneSword/p/3207697.html 按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果. 利用 min ...

随机推荐

  1. linux 安装 rpm 的jdk

    1.下载 JDK 路径:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 下载 j ...

  2. C#调试C++DLL库

    C#调试C++DLL库 https://blog.csdn.net/gggg_ggg/article/details/51086089 对于托管代码调用非托管DLL文件,已经是非常普遍的事情,下面写一 ...

  3. 如何在Java中编写一个线程安全的方法?

    线程安全总是与多线程有关的,即一个线程访问或维护数据时遭到了其它线程的“破坏”,为了不被破坏,就要保持所维护变量的原子性: 1 局部变量总是线程安全的,因为每个线程都有自己的栈,而在方法中声明的变量都 ...

  4. spring结合shiro的学习总结

    pom文件加入 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-c ...

  5. LeetCode 897. 递增顺序查找树(Increasing Order Search Tree)

    897. 递增顺序查找树 897. Increasing Order Search Tree 题目描述 给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有 ...

  6. 用pytorch1.0搭建简单的神经网络:进行多分类分析

    用pytorch1.0搭建简单的神经网络:进行多分类分析 import torch import torch.nn.functional as F # 包含激励函数 import matplotlib ...

  7. 关于工作中.net转java遇到的一个远程调用传递重复参的问题。

    工作中遇到一个很奇怪的传参问题.之前.net使用的是一个List列表,列表中有几个重复的参数.列表中使用的model类是KeyValue. 我使用java模仿其写法,传递List和KeyValue.对 ...

  8. (五)Spring Boot官网文档学习

    文章目录 SpringApplication SpringApplication 事件 `ApplicationContext ` 类型 访问传递给 `SpringApplication` 的参数 A ...

  9. Python20之全局变量和局部变量

    一.局部变量和全局变量 局部变量:是指在函数体内定义的变量,作用域只在该函数体内部 全局变量:是指在函数体外定义的变量,作用域是整个代码段 所以在函数体内可以直接访问全局变量而不可以在函数体外访问局部 ...

  10. VS.NET(C#)--2.3良构的XHTML

    良构的XHTML 1.关闭所有标签 2.禁止标签嵌套 3.区分大小写 4.引号  所有属性值都要置于引号中 5.唯一的根元素<html></html> 6.保留字符 XML中五 ...