MySQL基础
一、Windows 环境 启动mysql
- 开始 -> 运行 -> cmd > mysql –u root –p
- -u name 或 –user=name 用来指定使用MySQL的用户名;
- -p 作用是让mysql在启动时提示人们输入密码;
常用的命令:
- status (\s) 查看数据状态信息
- clear (\c) 放弃正在输入的命令
- exit 或 quit (\q) 退出mysql程序
- help (\h) 显示帮助信息(命令清单)
- use database (\u) 选择一个数据库
- show databases 查看数据库
二、数据库设计:
1、规范化(范式理论)
- 第一范式 :内容相似的数据列必须消除(“清除”的办法是再创建一个数据表来存放); 必须为每一组相关数据分别创建一个数据表; 每条数据记录必须用一个主键来标识; 数据库表中的字段都是单一属性的,不可再分。
- 第二范式 :只要数据列里的内容出现重复,就意味着应该把数据表拆分为多个子表; 拆分出来的数据表必须用外键关联起来;
- 第三范式: 与主键没有直接关系的数据列必须消除(“消除”的办法是再创建一个数据表来存放)
- 范式的优缺点: 范式只是一种帮助人们更好地设计数据库,但不能代替人们思考。在某些场合,机械的按照范式把所有的冗余都消除干净并不能获得最佳效果。
2、主键与外键 —— 数据表之间抽象的关联/引用关系是依靠具体的主键和外键建立起来的。
- 主键必须是唯一的,用来确定数据记录。
- 外键的作用是引用另一个数据表的某条记录。
3、选项和属性
- AUTO_INCREMENT
- 整数数据列,id值自动生成机制。
- 这个属性必须与NOT NULL 、PRIMARY KEY 或者 UNIQUE 属性同时使用。
- NULL
- 默认设置,意味着指定列可以不存在值。
- NOT NULL
- 将不允许向该列插入NULL值
- PRIMARY KEY
- 把数据列定义为主键
- DEFAULT
- 确保在没有任何值可用的情况下,赋予某个常量值
- UNSIGNED
- 数据都将是无符号整数
三、mysql_connect( 服务器地址,用户名,密码 );
- 链接数据库
四、mysql_select_db( 数据库名 );
- 选择数据库
五、SQL语句:
- 查询(SELECT)
- SELECT * FROM 数据表名(tablename);
- 查询整个记录的数据(all)
- SELECT column1,column2 FROM tablename;
- 查询特定数据
- SELECT COUNT(id) FROM tablename;
- 确定数据表里有多少条数据记录
- WHERE 子句
- 设置查询条件,过滤掉不需要的数据行
- SELECT user FROM tablename WHERE id>1 AND id<5;
- 查询 id>1 且 id<5 的用户名
- 范围运算符 (BETWEEN...AND... ) —— 判断表达式值是否在指定的范围内
- SELECT * FROM tablename WHERE id BETWEEN 2 AND 6;
- id在2~6之间的数据记录
- 列表运算符 (IN) —— 判断表达式是否为列表中的指定项
- 判断表达式是否为列表中的指定项,若加NOT则为不在列表中的其余项
- SELECT * FROM tablename WHERE id NOT IN(1,3,5);
- 模式匹配符(LIMIT) —— 指定两个参数,第一个为从哪开始(偏移量),第二个是返回多少个。
- SELECT * FROM tablename LIMIT 5,5;
- 索引记录行在6~10。
- 对查询结果进行排序 (ORDER BY)
- SELECT * FROM tablename ORDER BY id DESC;
- ASC表示升序,为默认值,DESC为降序
- 插入数据记录(INSERT)
- INSERT INTO user (username,password) VALUES ('admin','123456');
- user (username,password):插入数据表目标
- ('admin','123456'):插入数据,可以一次插入多条记录,用“,”隔开
- 修改数据记录(UPDATE)
- UPDATE users SET user='ray',pass='32323' WHERE id>5;
- user='ray',pass='32323':修改后的内容
- id>5:指定修改位置
- 删除数据记录(DELETE)
- DELETE FROM users WHERE id>4;
- id>4:删除范围
六、
- $result = mysql_query( SQL语句 ) —— 执行查询语句
- mysql_fetch_row($result) —— 返回数据