[关闭]
@linux1s1s 2017-07-14T16:20:10.000000Z 字数 3022 阅读 1397

Base Time-SQL

Base SQL 2017-07


配置SQL环境

  1. [Note] A temporary password is generated for root@localhost: oNuoIRY9td<j
  1. oNuoIRY9td<j

此处输入图片的描述

  1. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
  1. exit
  2. mysql -u root -p

然后输入上面修改的密码即可正常进入mysql

SQL基础

注意每条语句结束必须带分号 ;

  1. create database simple character set gbk;
  1. show databases;
  1. use simple

此处输入图片的描述

  1. create table students(
  2. id int unsigned not null auto_increment primary key,
  3. name char(8) not null,
  4. sex char(4) not null,
  5. age tinyint unsigned not null,
  6. tel char(13) null default "-"
  7. );

create table tablename(columns) 为创建数据库表的命令, 列的名称以及该列的数据类型将在括号内完成;

括号内声明了5列内容, id、name、sex、age、tel为每列的名称, 后面跟的是数据类型描述, 列与列的描述之间用逗号(,)隔开;

以 "id int unsigned not null auto_increment primary key" 行进行介绍:

  • "id" 为列的名称;
  • "int" 指定该列的类型为 int(取值范围为 -8388608到8388607), 在后面我们又用
  • "unsigned" 加以修饰, 表示该类型为无符号型, 此时该列的取值范围为 0到16777215;
  • "not null" 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空;
  • "auto_increment" 需在整数列中使用, 其作用是在插入数据时若该列为 NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。
  • "primary key" 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。
    下面的 char(8) 表示存储的字符长度为8, tinyint的取值范围为 -127到128, default 属性指定当该列值为空时的默认值。

上面的数据类型可以参考mysql 数据类型

  1. \. H:\workspace\SQL\students.sql

此处输入图片的描述

  1. show databases
  1. use simple
  2. show tables
  1. describe xxxx

此处输入图片的描述

对表的内容查询和修改

  1. insert into students (name, sex, age) values ("小孙", "女", 21);
  1. select name, age from students;

按特定条件查询:

where 关键词用于指定查询条件, 用法形式为: select 列名称 from 表名称 where 条件;

以查询所有性别为女的信息为例, 输入查询语句: select * from students where sex="女";

where 子句不仅仅支持 "where 列名 = 值" 这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =、>、<、>=、<、!= 以及一些扩展运算符 is [not] null、in、like 等等。 还可以对查询条件使用 or 和 and 进行组合查询, 以后还会学到更加高级的条件查询方式, 这里不再多做介绍。

示例:

  • 查询年龄在21岁以上的所有人信息: select * from students where age > 21;

  • 查询名字中带有 "王" 字的所有人信息: select * from students where name like "%王%";

  • 查询id小于5且年龄大于20的所有人信息: select * from students where id<5 and age>20;

update 表名称 set 列名称=新值 where 更新条件;

  1. update students set tel=default where id=5;

此处输入图片的描述


  1. delete from students where age<20;

对表的属性修改

alter table 语句用于创建后对表的修改, 基础用法如下:

基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置];

示例:
在表的最后追加列 address:

  1. alter table students add address char(60);

在名为 age 的列后插入列 birthday:

  1. alter table students add birthday date after age;

基本形式: alter table 表名 change 列名称 列新名称 新数据类型;

示例:
将表 tel 列改名为 telphone:

  1. alter table students change tel telphone char(13) default "-";

将 name 列的数据类型改为 char(16):

  1. alter table students change name name char(16) not null;

基本形式: alter table 表名 drop 列名称;

示例:
删除 birthday 列:

  1. alter table students drop birthday;

基本形式: alter table 表名 rename 新表名;

示例:
重命名 students 表为 workmates:

  1. alter table students rename workmates;

基本形式: drop table 表名;

示例: 删除 workmates 表:

  1. drop table workmates;

基本形式: drop database 数据库名;

示例: 删除 samp_db 数据库:

  1. drop database samp_db;

界面操作

以上为了熟悉SQL语句采用命令式,在实际操作中并不方便,而MySQL已经考虑到这点,所以提供了界面操作MySQL Workbench,可以下载使用。

: 参考:21分钟 MySQL 入门教程

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注