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
- MySQL基础
- MySQL基础
- MySql基础
- MySQL基础
- mysql基础
- MYSQL基础
- MySQL基础
- mysql基础
- mysql基础
- MySQL 基础
- mysql基础
- mysql基础
- mysql 基础
- MySQL基础
- MySql 基础
- mysql基础
- mysql基础
- mysql基础
- BaseCode之日期工具类:DateUtil.java
- day11 soket编程之半关闭
- 括号配对问题 (南阳理工oj-题目2)
- wcf序列化和消息编码
- 微信小程序获取系统时间、时间戳、时间时间戳加减
- mysql基础
- Linux 设置编码格式&乱码
- HttpClient Get请求中返回中文乱码问题解决
- [html5入门-27]CSS布局奇淫巧计之-强大的负边距
- LeetCode 38. Count and Say
- javascript总结
- git中Please enter a commit message to explain why this merge is necessary. Please enter a commit mess
- for,while循环,if判断格式
- 数据结构实验之栈二:一般算术表达式转换成后缀式