mysql基础

来源:互联网 发布:大秦帝国 纵横 知乎 编辑:程序博客网 时间:2024/06/05 19:16

数据库表结构

  • 表头(header):每一列的名称。
  • 列(row):具有相同数据类型的数据的集合。
  • 行(col):每一行用来描述某个人/物的具体信息。
  • 值(value):行的具体信息,每个值必须与该列的数据类型相同。
  • 键(key):表中来识别某个特定的人/物的方法,键的值在当前列中具有唯一性。

数据类型

  • 数字类型:
    • 整数:tinyint、smallint、mediumint、int、bigint
    • 浮点数:float、double、real、decimal
  • 日期和时间:
    • date、time、datetime、timestamp、year
  • 字符串类型:
    • 字符串:char、varchar
    • 文本:tinytext、text、mediumtext、longtext
    • 二进制(可用来存储图片、音乐):tinyblob、blob、mediumblob、longblob

数据库登录

​ 命令提示符中:

mysql -h 主机名 -u 用户名 -p

  • -h:指定客户端所要登录的MySql主机名,登录当前机器该参数可以省略
  • -u:所要登录的用户名
  • -p:登录用户的密码,没有密码可以省略

创建一个数据库

  • 使用create database语句完成对数据库的创建,创建命令:

    create database 数据库名 [其他选项];

    假如要创建一个student_db的数据库,命令如下:

    create database student_db;

  • 可以使用show databases; 命令查看当前创建了哪些数据库。

  • 选择所要操作的数据库

    • 在登录数据库时指定:

    命令格式:mysql -D 所选数据库名 -h 主机名 -u 用户名 -p

    例子:mysql -D student_db -u root -p

    • 在登录后使用use

    命令格式:use 数据库名;(use可以不加分号)

创建数据库表

  • 使用create table 语句可完成对表的创建,格式:

    create table 表名称(列声明);

  • 以创建students表为例,表中存放学号(id)、姓名(name)、性别(sex)、年龄(age)、电话(tel)

    create table students(id int unsigned not null auto_increment primary key,name char(8) not null,sex char(4) not null,age tinyint unsigned not null,tel char(13) null default "-");

    id int unsigned not null auto_increment primary key 解释:

    • id:列的名称
    • int:该类的数据类型是int类型的,unsigned加以修饰,表示该类型是无符号型。
    • not null:说明该列的值不能为空
    • auto_increment:需在整数列中使用,其作用是在插入数据时若该列为null,mysql将自动产生一个比现存值更大的唯一标识符值,在每张表中仅能有一个这样的值且所在列必须为索引列。
    • primary key:表示该列是表的主键,本列的值必须唯一,mysql将自动索引该列。
  • 使用show tables;查看已创建了的表的名称

  • 使用describe 表名;查看已创建表的详细信息。

向表中插入数据

  • 使用insert语句可以将一行或多行数据插入到数据库表中,格式:

    insert [into] 表名 [(列名1,列名2,列名3,......)] values (值1,值2,值3,......);

  • 比如向刚才创建的students表中插入数据:

    insert into students (id,name,sex,age,tel) values (1,"张三","男",18,13112341232);

  • select查询表中的数据,格式:

    select 列名称 form 表名称 [查询条件];

    例如查询students表中所以学生的姓名和手机号:

    select name,tel from students;

    也可以使用通配符*来查询表中的所有内容,语句:

    select * from students;

  • where按条件查询,格式:

    select 列名称 from 表名称 where 条件;

    查询students表中name是张三的学生:

    select name from students where name="张三";

    where子语句不仅仅支持”where 列名=值”,这种名等于值的查询形式,对一般的比较运算符都是支持的,例如=、>、<、>=、<=、!=以及一些扩展运算符is、null、in、like等等。还可以对查询条件使用or和and进行组合查询。

更新表中的数据

  • update语句可以用来修改表中的数据,基本格式:

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

    比如将students表中张三的年龄+1:

    update students set age=age+1 where name=“张三”;

删除表中的数据

  • delete语句用于删除表中的数据,基本格式:

    delete from 表名 where 删除条件;

    比如删除students表中age小于18的学生:

    delete from students where age<18;

修改创建后的表

  • alter table 语句用于对创建后的对表的修改,基本用法

    • 添加列

    alter table 表名 add 列名 列数据类型 [after 插入位置];

    在students表中最后追加列address:

    alter table students add address char(60);

    • 修改列:

    alter table 表名 change 列名 列新名称 数据类型;

    将students表中tel列改名成telphone:

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

    • 删除列:

    alter table 表名 drop 列名;

    删除students表中的address列:

    alter table students drop address;

    • 重命名表:

    alter table 表名 rename 新表名;

    将students表改名为t_stu:

    alter table students rename t_stu;

删除整张表

  • 使用drop,格式:

    drop table 表名;

    删除表t_stu:

    drop table t_stu;

删除整个数据库

  • 使用drop,格式:

    drop database 数据库名;

    删除数据库student_db:

    drop database student_db;

修改mysql的root密码:

  • 使用mysqladmin修改root密码,格式:

    mysqladmin -u root -p

原创粉丝点击