Day15

数据库

SQL概述

SQL语句分类数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

使用SQL语句时的注意事项:SQL语句不区分大小写, 建议关键字大写,其他小写. 我们今天写数据类型的时候要注意, Java中的String类型, 对应的是数据库中的 varchar(长度). 值的个数必须和列的个数对应. 值的类型和列的类型也必须对应. 如果是数字类型可以直接写, 其他类型用''括起来. SQL语句的结束标记是: 分号; 进行删除和修改操作之前, 一定一定一定要备份.

SQL语句操纵数据库(CURD) //create update read delete

增
    创建数据库:create database 数据库名;
删
    删除数据库:drop database 数据库名;
改
    修改数据库:alter database 数据库名 character set '字符编码';
               alter database 数据库名 charset '字符编码';
查 
    查询所有数据库
        show database;
    查询指定数据库的字符集
        show create database 数据库名;
    使用数据库(切换库)
        use 数据库名

SQL语句操作数据库表

增
    创建表
    create tables 数据表名(
        列名 数据类型 [约束],
        列名 数据类型 [约束],
        列名 数据类型 [约束]
    );  
数据类型:
    Java中的数据类型             MySQL中的数据类型
    byte/short/int/long         tinyint/smallint/int/long
    float/double                float/double
    char/String                 char/varchar(长度)
    Date                        Date/Time/DateTime/StampDate
                                DateTime: 可以自定义时间.
                                StampDate: 时间戳, 采用当前系统的默认时间.
    File                        BLOB/TEXT(CLOB)

约束
    作用: 用来保证数据的完整性和安全性.
    分类:
    单表约束:
        主键约束: primary key   //auto_increment(自动增长)
        唯一约束: unique
        非空约束: not null
    多表约束:
        外键约束: foreign key
创建表:
        create table users(
        uid int primary key auto_increment,
                uname varchar(20),
                pw varchar(20)
            );
删
    删除表:drop table 数据表名;
改:
    给表增加一列字段
        alter table 表名 add 列名 数据类型 约束;
    修改某列字段的约束和类型
        alter table 表名 modify 列名 数据类型 约束;
    修改某列字段的名字,约束,类型
        alter table 表名 change 旧列名 新列名 数据类型 约束;
    删除指定的列
        alter table 表名 drop 列名;
    修改表名
        rename table 旧表名 to 新表名;
    修改表的码表
        alter table 表名 character set 指定的码表;
        alter table 表名 charset 指定的码表;

查:
    查询所有的数据表: show tables;
    查询指定数据表(表结构):desc 数据表名;

SQL语句操作数据表中的数据

增:
    添加一条数据:
        insert into 数据表名(列名1,列名2,列名3) values(值1,值2,值3);
    批量添加: //添加多条数据
        insert into 数据表名(列名1,列名2,列名3) values(值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
通过"DOS命令窗口"往MySQL中添加中文, 然后查看的时候发现会出现乱码情况
    因为控制台默认码表是: GBK, MySQL的服务器端和客户端的默认码表都是: UTF8, 所以会出现乱码.
解决方案:
    方式一:  临时性的把 MySQL的客户端的码表设置为: gbk //set names 'gbk';
    方式二:  永久性设置, 在my.ini配置文件中, 将client的码表改为: GBK.
删:
    delete from 数据表名 where 条件;
改:
    update 数据表名 set 列名1=值,列名2=值,列名3=值 where 条件;
    备份数据:
        备份表不存在:
            create table 备份表名 select * from 要备份的表名;
        备份表已经存在:
            insert into 备份表名 select * from 要备份的表名;
查:
    最基本的查询:
        select * from 数据表名;
        select 列名1,列名2,列名3 from 数据表名;

一个完整的SQL查询语句的格式

select 列名1,列名2,列名3 from 数据表名 where 分组前的条件筛选 group by 要分组的列
having 分组后的条件筛选 order by 排序的列 [asc/desc];

修改表添加列

 alert table 列名
 add 字段名 类型(长度) [约束]

修改表修改列的类型长度及约束

alert table 列名
modify 列名 类型(长度) [约束]

修改表修改列名

alter table 表名 change 旧列名 新列名 类型(长度) 约束;

修改表删除列

alter table 表名 drop 列名

修改表名

rename table 表名 to 新表名

修改表的字符集

alter table 表名 character set '字符集'

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后台日记

Mysql INSERT ON DUPLICATE KEY UPDATE

INSERT ... ON DUPLICATE KEY UPDATE是MySQL insert的一种扩展。当发现有重复的唯一索引(unique key)或者主键...

1443
来自专栏数据库

数据库的完整性

导读: 本文深入的介绍了数据库的完整性. O、 数据库的完整性(总体概述) 一、实体完整性 二、参照完整性 三、用户定义完整性 O、数据库的完整性 数据的正确性...

2079
来自专栏数据和云

层层升入:SQL极限调优之一次更新操作的N种优化可能

杨廷琨,网名 yangtingkun 云和恩墨技术总监,Oracle ACE Director,ACOUG 核心专家 最近进行了一次更新操作,整个处理和优化的过...

3038
来自专栏文渊之博

mysql表分区简述

数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应...

1113
来自专栏python3

mysql-索引

数据库中专门用于帮助用户快速查找数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置吗,然后直接获取

1642
来自专栏性能与架构

mysql explain分析说明

explain是sql优化时的重要工具 使用方法 在要分析的sql语句签名添加 explain ,例如 explain select * from user;...

3424
来自专栏极客慕白的成长之路

MySQL从安装到使用

Columns 列;Indexes 索引;Views 视图;Events 事件;Fields 字段;

824
来自专栏zingpLiu

python【第十二篇】Mysql基础

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可...

1022
来自专栏互联网开发者交流社区

数据定义: CREATE、DROP、ALTER

1392
来自专栏JetpropelledSnake

SQL学习笔记之SQL中INNER、LEFT、RIGHT JOIN的区别和用法详解

相信很多人在刚开始使用数据库的INNER JOIN、LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的...

892

扫码关注云+社区

领取腾讯云代金券