2.3 MySQL支持的数据类型
在MySQL中创建表时要熟悉MySQL的数据类型,它与Oracal不同。
面向对象的应用程序接口(API)
Int 整型 4个字节,但是可以指定长度,最多可指定11个字节
Char定长字符串
DOUBLE浮点型
VARChar(M) [BINARY]一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1 ~ 255个字符。 VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词值。 VARCHAR是CHARACTER VARYING一个缩写。
Datetime一个日期和时间组合。支持的范围是’1000-01-01 00:00:00′到’9999-12-31 23:59:59′。MySQL以’YYYY-MM-DD HH:MM:SS’格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。
Longtext长字符串类型,一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符
2.5 MySQL语句结构
SQL 是 Structured Query Language(结构化查询语言)的英文缩写,MySQL使用SQL语句存储和检索信息。
MySQL 支持SQL语句:
数据定义语句(DDL): | 用于改变数据库结构,包括创建、更改和删除数据库对象 | 用于操作表结构的DDL语句有: CREATE DATABASE DROP DATABASE CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEX |
数据操纵语句(DML) | DML用于检索和修改数据 | SELECT INSERT UPDATE DELETE |
事务控制语句(TCL) | 事务是最小的工作单元,作为一个整体同时成功或失败,称为事务控制 | 用于事务控制的语句有: START TRANSACTION – 开始事务处理 COMMIT - 提交并结束事务处理 ROLLBACK - 撤销事务中已完成的工作 SAVEPOINT – 标记事务中可以回滚的点 |
数据控制语句(DCL) |
2.4 常用命令总结
注意所有的文本命令必须以斜线开始,且以分号结束,不区分大小写
重复上一条命令的快捷键同matlab向上键,在执行前可进行修改
1 退出命令
成功地连接后,可以在mysql>提示下输入QUIT或exit; (或\q)随时退出:mysql> quit
2 显示所有数据库命令
使用SHOW语句找出服务器上当前存在什么数据库:mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| Information_schema|
| mysql |
| test |
+----------+
3访问某数据库
如果test数据库存在,尝试访问它: mysql> USE test
Database changed
注意,USE,类似QUIT,不需要一个分号,USE语句在使用上也有另外一个特殊的地方:它必须在一个单行上给出。
4 创建自己的数据库create database name;
创建数据库:create database mydata; 是database不是databases |
5 在数据库中进行操作 use chenyy(databasename),之后所用的所有操作都是工作在此数据库之下
6创建表格 create table dept。
一定要与use e name连用,以创建者此数据库之下。
mysql> create table dept %创建部门表,没有分号 -> ( %输入的是(,但是显示的是< -> deptno int primary key, % department mumber 数据类型为int,是主键 -> dname varchar(14), % department name -> loc varchar(13) %location 所在地 -> ); Query OK, 0 rows affected (0.31 sec) %表已经创建好,问题解决Query(问题) 创建数据表时开始和结尾要加括号,这里用的是小括号"()",不是"<>",虽然mysql命令行显示是<>。 |
注:主键 MYSQL 的 primary key 和unique key 的区别 Primary Key与Unique Key Primary key 与Unique Key都是唯一性约束。但二者有很大的区别: 1、Primary key的1个或多个列必须为NOT NULL,如果列为NULL,在增加Primary key时,列自动更改为NOT NULL。而UNIQUE KEY 对列没有此要求。 2、一个表只能有一个PRIMARY KEY,但可以有多个UNIQUE KEY。 |
7 创建表emp:
create table emp %雇员表
create table emp ( empno int primary key, ename varchar(10), job varchar(10), mgr int, hiredate datetime, sal double, comm double, deptno int(3), %int可指定长度1-11之间 foreign key(deptno) references dept(deptno) %创建外键deptno引用主键dept的deptno字段 );引用其实就是相等 |
8创建create table salgrade
--工资级别表
create table salgrade ( grade int(3) primary key, losal int(3), hisal int(3) ); |
不同数据库之间的不同主要有:数据类型、分页程序。
用于管理MySQL的数据库和表的内容的软件为MySQL Administer
9查看所有数据库命令 show databases;
10查看所有表命令 show tables;
11 观察某个表的结构:desc dept; ( description department)
12.1查询 : 查询表中所有数据 : select * from table_name;
查询指定字段的数据 : select 字段1 , 字段2 from table_name;
例 : select id,username from mytable where id=1 order by desc;多表查询语句------------参照第17条
13 向表dept中插入数据命令
insert into dept values(deptno,“dname”,“loc”);与上表中的结构对应。
--往部门表中查数据 insert into dept values(10,'Accounting','New York'); insert into dept values(20,'Research','Dallas'); insert into dept values(30,'Sales','Chicago'); insert into dept values(40,'Operations','Boston'); insert into dept values(50,'Admin','Washing'); Commit 制定好之后提交,托付; 交付 |
14 删除命令
14.1数据库删除 : Drop database db_name; 删除时可先判断是否存在,写成 : drop database if exits db_name
14.2删表 : drop table table_name; 例 : drop table mytable;
14.3 删除整个表中的信息,不删除表 : delete from table_name;
删除表中指定条件的语句 : delete from table_name where 条件语句 ; 条件语句如 : 列名=列内容,注意对字符串要加‘’。
表 faults的内容如下:
不同数据库之间的不同主要有:自动递增字段。
17自动递增字段
mysql> Create table article -> (id int primary key auto_increment, %自动递增字段 title varchar(255)); Query OK, 0 rows affected (0.20 sec) mysql> insert into article values(null,'a'); 将id设为空,title=a插入到表中 Query OK, 1 row affected (0.25 sec) mysql> select * from article; 可以看到id自动编号为1 +----+-------+ | id | title | +----+-------+ | 1 | a | +----+-------+ 1 row in set (0.00 sec) mysql> insert into article values(null,'b'); 再将id设为空,title=b插入到表中 Query OK, 1 row affected (0.27 sec) mysql> Select * from article; +----+-------+ | id | title | +----+-------+ | 1 | a | | 2 | b | +----+-------+ 2 rows in set (0.00 sec) 或者insert into article (title)values (‘c’);%只在title上插值 Select * from article; |
18 取当前日期 select now();
19 将日期转换成任意的字符串,并设置字符串的格式
Select date_format(now(),‘%y-%m-%d %h:%i: %s );注意使用i表示分钟,不是m
%W 星期名字(Sunday……Saturday)
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%d 月份中的天数, 数字(00……31)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”。
20插入任意日期
向表emp中插入日期,插之前先看看它的结构。
Desc emp
21向表emp中插值时,应该注意外键、参考、主键等。
程序中deptno int(3), foreign key(deptno) references dept(deptno)
而insert into dept values(deptno,‘dname’,‘loc’);与上表中的结构对应。
表dept的结构 --往部门表中查数据 insert into dept values(10,'Accounting','New York'); insert into dept values(20,'Research','Dallas'); insert into dept values(30,'Sales','Chicago'); insert into dept values(40,'Operations','Boston'); insert into dept values(50,'Admin','Washing'); Commit 制定好之后提交,托付; 交付 |
所以在填写emp的deptno一项时应该引用dept的deptno。
Insert into emp values(1,‘chenyy’,‘market’,123,‘2010-09-01 11:11:11’,8000,80,10);
转自:http://blog.csdn.net/yongjian1092/article/details/7330094