Navicat的安装和卸载注意点:
1.如果之前安装过Navicat premium.app,或者安装失败,就需要彻底的卸载~
2》前往- ~/Lib,tab键显示资源库 - Application Support -premiumSoft…这个文件夹也删除 -重启计算机,如果不这样做,则安装一直失败
2.安装
1》点开dmg后,里面还有个dmg,继续点击,安装完成后显示应用列表的窗口不要关!(关闭的话破解会不成功,就需要重新卸载)
2》在安装目录中有个navicat keygen的文件,右键显示简介,要选择以32位模式打开,然后弹框右侧的桑格按钮分别点击并选择已经安装的navicat pre..软件,提示succesful即可
3.使用Navicatpremium,选择创建一个sqlite数据库,并创建table,创建属性,注意创建主键
主键:1》唯一标示一条记录 2》通常是一个整数 3》通常是自动增长的 4》程序员通常不用关心主键的数值
在设置table的属性的时候,在想要成为主键的属性后面key下点击生成钥匙即可,并在下面autoincre。。。勾选,实现自增长
4.对于sqlite的使用,我们需要做的
1》能看懂
2》开发的时候,可以从navicat先创建好表格,然后复制粘贴
方法:在navicat中创建好表格后,点击more info,点击DDL,则出现sql语句
3》需要自己增加 IF NOT EXISTS
1》单行注释:两个横杠--多行注释同C语言,
2》sqlite中的类型只有五种:INTEGER,TEXT(字符串类型,用单引号即可''),REAL(小数),BLOB(二进制,一般不用,用于图片等),NULL
但是其实这些数据类型就是给程序员看的,内部是不区分的,所以如果没有按照数据类型赋值的话也是可以的。。自己把握好
3》sql语句最后也要写上分好;,虽然不写也可以,但是写上更专业
3》创建表
CREAT TABLE IF NOT EXISTS '表名'(
'字段1'类型,
'字段2'类型,
…
)
4》插入
INSERT INTO表名(字段名1,字段名2,…)VALUES(值1,值2,…);
5》更新数据
UPDATE表名SET字段1 = '值1',字段2 = '值2',…WHERE条件语句;
更新数据一定要加上判断条件,数据库的修改是不可逆的,一定要慎重
6》删除指令
DELETE FROM表名WHERE条件语句;
7》删除表
DROP TABLE表名
8》查询语句
查询所有记录,但是这种写法一般仅供调试使用
SELECT * FROM表名;
日常开发建议写,指定要查询的字段
SELECT字段1,字段2,… FROM 表名;
查询记录的总数
SELECTcount(*) FROM表名;
SELECT count(*) FROM表名 WHERE条件语句;(如age < 20)
按条件查询详细信息
SELECT字段1,字段2,… FROM 表名 WHERE条件语句;
查询某字段的最值
SELECT max(字段名) FROM表名;
SELECT min(字段名) FROM表名;
查询,优先级排序(排序方式:DESC降序,ASC升序,默认是升序)
SELECT字段1,字段2,… FROM 表名 ORDER BY字段a排序方式,字段b排序方式,…;
常用 sql
创建表
/* 创建数据表 CREATE TABLE '表名' ( '字段名' 类型(INTEGER,REAL,TEXT,BLOB) NOT NULL 不允许为空 PRIMARY KEY 主键 AUTOINCREMENT 自增长,'字段名2' 类型,... ) 注意:在开发中,如果是从 Navicat 粘贴的 sql,需要自己添加一个指令 IF NOT EXISTS 加在表名前,如果数据表已经存在,就什么也不做 */
CREATE TABLE IF NOT EXISTS "T_Person" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"name" TEXT,"age" INTEGER,"heigth" REAL ) /* 简单约束 */ CREATE TABLE IF NOT EXISTS t_student ( id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER );
CREATE TABLE IF NOT EXISTS t_student ( id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE,age INTEGER );
/* 添加主键 */
CREATE TABLE IF NOT EXISTS t_student ( id INTEGER PRIMARY KEY AUTOINCREMENT,age INTEGER,score REAL );
/* 添加主键 */
CREATE TABLE IF NOT EXISTS t_student ( id INTEGER,score REAL,PRIMARY KEY(id) );
插入
INSERT INTO t_student (age,score,name) VALUES ('28',100,'zhangsan');
INSERT INTO t_student (name,age) VALUES ('lisi','28');
INSERT INTO t_student (score) VALUES (100);
修改
UPDATE t_student SET name = 'MM' WHERE age = 10;
UPDATE t_student SET name = 'WW' WHERE age is 7;
UPDATE t_student SET name = 'XXOO' WHERE age < 20;
UPDATE t_student SET name = 'NNMM' WHERE age < 50 and score > 10;
/*更新记录的name*/
UPDATE t_student SET name = 'zhangsan';
删除
DELETE FROM t_student;
DELETE FROM t_student WHERE age < 50;
查询
/* 分页 */
SELECT * FROM t_student ORDER BY id ASC LIMIT 30,10;
/* 排序 */
SELECT * FROM t_student WHERE score > 50 ORDER BY age DESC;
SELECT * FROM t_student WHERE score < 50 ORDER BY age ASC,score DESC;
/* 计量 */
SELECT COUNT(*) FROM t_student WHERE age > 50;
/* 别名 */
SELECT name as myName,age as myAge,score as myscore FROM t_student;
SELECT name myName,age myAge,score myscore FROM t_student;
SELECT s.name myName,s.age myAge,s.score myscore FROM t_student s WHERE s.age > 50;
/* 查询 */
SELECT name,age,score FROM t_student;
SELECT * FROM t_student;
删除表
/*删除表*/
DROP TABLE IF EXISTS t_student;